vue3----API

组合式API

1.setup

定义的数据和方法必须return出去才能够被使用

不使用this,this指向了undefined

<script>
export default {setup () {console.log('setup')const message = 'this is message'const logmessage = ()=>{console.log(message)}return {message,logmessage}},beforeCreate () {console.log('beforeCreate')}}
</script>

更加简单的方式:语法糖:在script中加入setup

<script setup>const message = 'this is message'const logmessage = ()=>{console.log(message)}
</script>

2.reactive和ref函数

reactive()函数接受对象类型数据参数传入并返回一个响应式的对象

<script setup>
import { reactive } from 'vue';const state = reactive({count:0})const setcount =()=>{state.count++}
</script><template><button @click="setcount">{{ state.count }}</button>
</template>

ref()函数即支持简单类型也支持对象类型数据传入并返回一个数据

<script setup>
import { ref } from 'vue';const state = ref(0)const setcount =()=>{state.value++}
</script><template><button @click="setcount">{{ state }}</button>
</template>

note: 脚本区域更改ref产生的响应式数据,必须通过 .value属性

3.computed 计算属性函数

<script setup>
import { computed,ref } from 'vue';
const list = ref([1,2,3,4,5,6,7,8])
//使用filter属性进行筛选
const computedstate = computed(()=>{return list.value.filter(iter=>iter>2)})setTimeout(() => {list.value.push(9,10)
}, 3000);</script><template><div>原始数组{{list}}</div><div>计算属性数组{{computedstate}}</div>
</template>

通过computedstate计算列表大于2的数,其中settimeout为计时器,到3000ms后将9,10放入list中

4.watch 函数

侦听一个或者多个数据的变化,数据变化时执行回调函数

保持两个额外参数:1.immediate()立即执行,2.deep(深度监听)

watch函数共有两个参数,一个是要监听的数据,另一个是当该数据变化时要执行的函数,第一个参数的ref对象不需要加.value,它会自动的处理

<script setup>
import { computed,ref, watch, } from 'vue';
const count = ref(0)
const setcount=()=>{count.value++
}watch(count,()=>(console.log('count变化了')
))</script><template><div><button @click="setcount">{{ count }}</button></div></template>

如果向要监听多个数据变化,我们的数据由之前单一的格式变为数组,在数组里面放自己想要监听的数据,前面数组为新值,后面数组为老值

<script setup>
import { computed,ref, watch, } from 'vue';
const count = ref(0)
const name = ref('cp')
const setcount=()=>{count.value++
}
const setname=()=>{name.value = 'pc'
}watch([count,name],([newcount,newname],[oldcount,oldname])=>(console.log('变化了')
))</script><template><div><button @click="setcount" >{{ count }}</button></div><div><button @click="setname">{{ name }}</button></div></template>

immediate 在监听器创建时立即触发回调,响应式数据变化之后继续执行回调

deep 通过watch监听的ref对象默认是浅层监听的,直接修改嵌套的对象属性不会触发回调执行如(对于ref(count:0)来说此时如果直接使用state.value.count++不会使得按钮后修改),需要开启deep选项

如果不开启deep,我们可以在watch函数中使用()=>info.value.age来监听age,info为定义的变量

5.生命周期函数

在API中,很多选项式API都被嵌套进入组合式API中,比如beforeCreate嵌套进入setup中

6.组合式API-父子通信

组合式API下的父传子

1.父组件给子组件绑定属性,2.子组件内部通过props选项接收

setup语法糖下局部组件无需注册即可使用

父组件通过写在template中的SonCom来进行数据传递

子组件通过defineProps接收数据

note:如果是响应式数据需要在SonCom后面加:,同时响应数据在父组件改变后也会改变子组件

组合式API下的子传父

1.父组件给子组件变迁通过@绑定事件,2.子组件内部通过$emit方法触发事件

<template><sonComVue @get-message="getMessage" />
</template>
const emit = defineEmits(['get-message'])
const sendMsg = () => {emit('get-message','this is son msg')
}

如果触发自定义事件,相当于使用了我们所定义的getMessage函数,比如打印函数

const getMessage = (msg) =>{console.log(msg)
}

7.组合式API--模块引用

通过ref标识获取真实的dom对象或者组件实例对象

调用ref(null)生成一个ref对象,通过ref标识绑定ref对象到标签

note:使用onmounted进行组件挂载,确保组件挂载完毕之后获取

默认情况下在<script setup>语法糖下组件内部的属性和方法是不开放给父组件访问的,通过defineExpose编译宏制定哪些属性和方法允许访问

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/62495.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服务器遭受DDoS攻击后如何恢复运行?

当服务器遭受 DDoS&#xff08;分布式拒绝服务&#xff09;攻击 后&#xff0c;恢复运行需要快速采取应急措施来缓解攻击影响&#xff0c;并在恢复后加强防护以减少未来攻击的风险。以下是详细的分步指南&#xff1a; 一、应急处理步骤 1. 确认服务器是否正在遭受 DDoS 攻击 …

【maven-5】Maven 项目构建的生命周期:深入理解与应用

1. 生命周期是什么 ​在Maven出现之前&#xff0c;项目构建的生命周期就已经存在&#xff0c;软件开发人员每天都在对项目进行清理&#xff0c;编译&#xff0c;测试及部署。虽然大家都在不停地做构建工作&#xff0c;但公司和公司间&#xff0c;项目和项目间&#xff0c;往往…

【机器学习】CatBoost 模型实践:回归与分类的全流程解析

一. 引言 本篇博客首发于掘金 https://juejin.cn/post/7441027173430018067。 PS&#xff1a;转载自己的文章也算原创吧。 在机器学习领域&#xff0c;CatBoost 是一款强大的梯度提升框架&#xff0c;特别适合处理带有类别特征的数据。本篇博客以脱敏后的保险数据集为例&#x…

lua download

https://www.lua.org/ https://www.lua.org/versions.html#5.4

基于大数据python 房屋价格数据分析预测可视化系统(源码+LW+部署讲解+数据库+ppt)

&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 很对人不知道选题怎么选 不清楚自己适合做哪块内容 都可以免费来问我 避免后期給自己答辩找麻烦 增加难度&#xff08;部分学校只有一次答辩机会 没弄好就延迟…

pikachu文件上传漏洞通关详解

声明&#xff1a;文章只是起演示作用&#xff0c;所有涉及的网站和内容&#xff0c;仅供大家学习交流&#xff0c;如有任何违法行为&#xff0c;均和本人无关&#xff0c;切勿触碰法律底线 目录 概念&#xff1a;什么是文件上传漏洞一、客户端check二、MIME type三、getimagesi…

Monitor 显示器软件开发设计入门二

基础篇--显示驱动方案输出接口介绍 写在前面&#xff1a;首先申明&#xff0c;这篇文章是写给那些初入显示器软件行业的入门者&#xff0c;或是对显示器没有基本知识的小白人员。如您是行业大咖大神&#xff0c;可以绕行&#xff0c;可看后期进阶文章。 上篇介绍了输入接口及相…

像素流送api ue多人访问需要什么显卡服务器

关于像素流送UE推流&#xff0c;在之前的文章里其实小芹和大家聊过很多&#xff0c;不过今天偶然搜索发现还是有很多小伙伴&#xff0c;在搜索像素流送相关的问题&#xff0c;搜索引擎给的提示有这些。当然这些都是比较短的词汇&#xff0c;可能每个人真正遇到的问题和想获取的…

【21-30期】Java技术深度剖析:从分库分表到微服务的核心问题解析

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;Java &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; 文章题目&#xff1a;Java技术深度剖析&#xff1a;从分库分表到微服务的核心问题解析 摘要&#xff1a; 本…

Flutter 权限申请

这篇文章是基于permission_handler 10.2.0版本写的 前言 在App开发过程中我们经常要用到各种权限&#xff0c;我是用的是permission_handler包来实现权限控制的。 pub地址&#xff1a;https://pub.dev/packages/permission_handler permission_handler 权限列表 变量 Androi…

【Spring】Spring IOCDI:架构旋律中的“依赖交响”与“控制华章”

前言 &#x1f31f;&#x1f31f;本期讲解关于Spring IOC&DI的详细介绍~~~ &#x1f308;感兴趣的小伙伴看一看小编主页&#xff1a;GGBondlctrl-CSDN博客 &#x1f525; 你的点赞就是小编不断更新的最大动力 &#x1f386;那么…

【小白学机器学习34】基础统计2种方法:用numpy的方法np().mean()等进行统计,pd.DataFrame.groupby() 分组统计

目录 1 用 numpy 快速求数组的各种统计量&#xff1a;mean, var, std 1.1 数据准备 1.2 直接用np的公式求解 1.3 注意问题 1.4 用print() 输出内容&#xff0c;显示效果 2 为了验证公式的背后的理解&#xff0c;下面是详细的展开公式的求法 2.1 均值mean的详细 2.2 方差…

ubuntu20配置mysql注意事项

目录 一、mysql安装 二、初始化配置密码 三、配置文件的位置 四、常用的mysql命令 五、踩坑以及解决方法 一、mysql安装 1.更新apt源 sudo apt update 2.安装mysql服务 sudo apt-get install mysql-server 3.初始化配置 sudo mysql_secure_installation 4.配置项 VALI…

开展网络安全成熟度评估:业务分析师的工具和技术

想象一下,您坐在飞机驾驶舱内。起飞前,您需要确保所有系统(从发动机到导航工具)均正常运行。现在,将您的业务视为飞机,将网络安全视为飞行前必须检查的系统。就像飞行员依赖检查表一样,业务分析师使用网络安全成熟度评估来评估组织对网络威胁的准备程度。这些评估可帮助…

MySql(面试题理解B+树原理 实操加大白话)

数据的定位 通过磁道和扇区定位到数据的位置 扇区为512字节 黄色地方数据位置为2磁道3扇区 黑色地方数据位置为1磁道1扇区 通过磁道和扇区还有偏移量定位到数据的位置 比如这里有一张表 由id、name、no、address组成id为主键 列占有大小&#xff08;字节&#xff09; id int …

目标检测,图像分割,超分辨率重建

目标检测和图像分割 目标检测和图像分割是计算机视觉中的两个不同任务&#xff0c;它们的输出形式也有所不同。下面我将分别介绍这两个任务的输出。图像分割又可以分为&#xff1a;语义分割、实例分割、全景分割。 语义分割&#xff08;Semantic Segmentation&#xff09;&…

K8s内存溢出问题剖析:排查与解决方案

文章目录 一、背景二、排查方案&#xff1a;1. 可能是数据量超出了限制的大小&#xff0c;检查数据目录大小2. 查看是否是内存溢出2.1 排查数据量&#xff08;查看数据目录大小是否超过limit限制&#xff09;2.2 查看pod详情发现问题 三、解决过程 一、背景 做redis压测过程中…

python3 + selenium 中用PIL获取全屏幕截图

获取当前屏幕截图非常简单&#xff0c;需要import PIL.ImageGrab。调用grab函数即可得到Image对象&#xff0c;显示图片如图所示。 高版本的PIL中的grab函数还提供有一些参数。要查看当前PIL包的版本&#xff0c;可以import然后查看其__version__属性。 如果是较高版本的PIL…

请求(request)

目录 前言 request概述 request的使用 获取前端传递的数据 实例 请求转发 特点 语法 实例 实例1 实例2 【关联实例1】 域对象 组成 作用范围&#xff1a; 生命周期&#xff1a; 使用场景&#xff1a; 使用步骤 存储数据对象 获得数据对象 移除域中的键值…

离线安装 Docker-IO:详细步骤指南

离线安装 Docker-IO:详细步骤指南 一、准备工作1.1 下载 Docker 离线安装包1.2 准备安装环境1.3 配置防火墙和 SELinux(可选)二、上传和解压离线安装包2.1 上传安装包2.2 解压安装包三、安装 Docker-IO3.1 移动 Docker 文件到系统目录3.2 配置 Docker 服务3.3 赋予服务文件执…