当前位置: 首页 > wzjs >正文

网站跳出率0网站建设公司宣传册

网站跳出率,0网站建设公司宣传册,中山古镇做网站,怎么制作图片表格3.9.【watch】 作用:监视数据的变化(和Vue2中的watch作用一致)特点:Vue3中的watch只能监视以下四种数据: ref定义的数据。reactive定义的数据。函数返回一个值(getter函数)。一个包含上述内容的…

3.9.【watch】

  • 作用:监视数据的变化(和Vue2中的watch作用一致)
  • 特点:Vue3中的watch只能监视以下四种数据
  1. ref定义的数据。
  2. reactive定义的数据。
  3. 函数返回一个值(getter函数)。
  4. 一个包含上述内容的数组。

我们在Vue3中使用watch的时候,通常会遇到以下几种情况:

* 情况一

监视ref定义的【基本类型】数据:直接写数据名即可,监视的是其value值的改变。

<template><div class="person"><h1>情况一:监视【ref】定义的【基本类型】数据</h1><h2>当前求和为:{{sum}}</h2><button @click="changeSum">点我sum+1</button></div>
</template><script lang="ts" setup name="Person">import {ref,watch} from 'vue'// 数据let sum = ref(0)// 方法function changeSum(){sum.value += 1}// 监视,情况一:监视【ref】定义的【基本类型】数据const stopWatch = watch(sum,(newValue,oldValue)=>{console.log('sum变化了',newValue,oldValue)if(newValue >= 10){stopWatch()}})
</script>

* 情况二

监视ref定义的【对象类型】数据:直接写数据名,监视的是对象的【地址值】,若想监视对象内部的数据,要手动开启深度监视。

注意:

  • 若修改的是ref定义的对象中的属性,newValueoldValue 都是新值,因为它们是同一个对象。

  • 若修改整个ref定义的对象,newValue 是新值, oldValue 是旧值,因为不是同一个对象了。

<template><div class="person"><h1>情况二:监视【ref】定义的【对象类型】数据</h1><h2>姓名:{{ person.name }}</h2><h2>年龄:{{ person.age }}</h2><button @click="changeName">修改名字</button><button @click="changeAge">修改年龄</button><button @click="changePerson">修改整个人</button></div>
</template><script lang="ts" setup name="Person">import {ref,watch} from 'vue'// 数据let person = ref({name:'张三',age:18})// 方法function changeName(){person.value.name += '~'}function changeAge(){person.value.age += 1}function changePerson(){person.value = {name:'李四',age:90}}/* 监视,情况一:监视【ref】定义的【对象类型】数据,监视的是对象的地址值,若想监视对象内部属性的变化,需要手动开启深度监视watch的第一个参数是:被监视的数据watch的第二个参数是:监视的回调watch的第三个参数是:配置对象(deep、immediate等等.....) */watch(person,(newValue,oldValue)=>{console.log('person变化了',newValue,oldValue)},{deep:true})</script>

* 情况三

监视reactive定义的【对象类型】数据,且默认开启了深度监视。

<template><div class="person"><h1>情况三:监视【reactive】定义的【对象类型】数据</h1><h2>姓名:{{ person.name }}</h2><h2>年龄:{{ person.age }}</h2><button @click="changeName">修改名字</button><button @click="changeAge">修改年龄</button><button @click="changePerson">修改整个人</button><hr><h2>测试:{{obj.a.b.c}}</h2><button @click="test">修改obj.a.b.c</button></div>
</template><script lang="ts" setup name="Person">import {reactive,watch} from 'vue'// 数据let person = reactive({name:'张三',age:18})let obj = reactive({a:{b:{c:666}}})// 方法function changeName(){person.name += '~'}function changeAge(){person.age += 1}function changePerson(){Object.assign(person,{name:'李四',age:80})}function test(){obj.a.b.c = 888}// 监视,情况三:监视【reactive】定义的【对象类型】数据,且默认是开启深度监视的watch(person,(newValue,oldValue)=>{console.log('person变化了',newValue,oldValue)})watch(obj,(newValue,oldValue)=>{console.log('Obj变化了',newValue,oldValue)})
</script>

* 情况四

监视refreactive定义的【对象类型】数据中的某个属性,注意点如下:

  1. 若该属性值不是【对象类型】,需要写成函数形式。
  2. 若该属性值是依然是【对象类型】,可直接编,也可写成函数,建议写成函数。

结论:监视的要是对象里的属性,那么最好写函数式,注意点:若是对象监视的是地址值,需要关注对象内部,需要手动开启深度监视。

<template><div class="person"><h1>情况四:监视【ref】或【reactive】定义的【对象类型】数据中的某个属性</h1><h2>姓名:{{ person.name }}</h2><h2>年龄:{{ person.age }}</h2><h2>汽车:{{ person.car.c1 }}、{{ person.car.c2 }}</h2><button @click="changeName">修改名字</button><button @click="changeAge">修改年龄</button><button @click="changeC1">修改第一台车</button><button @click="changeC2">修改第二台车</button><button @click="changeCar">修改整个车</button></div>
</template><script lang="ts" setup name="Person">import {reactive,watch} from 'vue'// 数据let person = reactive({name:'张三',age:18,car:{c1:'奔驰',c2:'宝马'}})// 方法function changeName(){person.name += '~'}function changeAge(){person.age += 1}function changeC1(){person.car.c1 = '奥迪'}function changeC2(){person.car.c2 = '大众'}function changeCar(){person.car = {c1:'雅迪',c2:'爱玛'}}// 监视,情况四:监视响应式对象中的某个属性,且该属性是基本类型的,要写成函数式/* watch(()=> person.name,(newValue,oldValue)=>{console.log('person.name变化了',newValue,oldValue)}) */// 监视,情况四:监视响应式对象中的某个属性,且该属性是对象类型的,可以直接写,也能写函数,更推荐写函数watch(()=>person.car,(newValue,oldValue)=>{console.log('person.car变化了',newValue,oldValue)},{deep:true})
</script>

* 情况五

监视上述的多个数据

<template><div class="person"><h1>情况五:监视上述的多个数据</h1><h2>姓名:{{ person.name }}</h2><h2>年龄:{{ person.age }}</h2><h2>汽车:{{ person.car.c1 }}、{{ person.car.c2 }}</h2><button @click="changeName">修改名字</button><button @click="changeAge">修改年龄</button><button @click="changeC1">修改第一台车</button><button @click="changeC2">修改第二台车</button><button @click="changeCar">修改整个车</button></div>
</template><script lang="ts" setup name="Person">import {reactive,watch} from 'vue'// 数据let person = reactive({name:'张三',age:18,car:{c1:'奔驰',c2:'宝马'}})// 方法function changeName(){person.name += '~'}function changeAge(){person.age += 1}function changeC1(){person.car.c1 = '奥迪'}function changeC2(){person.car.c2 = '大众'}function changeCar(){person.car = {c1:'雅迪',c2:'爱玛'}}// 监视,情况五:监视上述的多个数据watch([()=>person.name,person.car],(newValue,oldValue)=>{console.log('person.car变化了',newValue,oldValue)},{deep:true})</script>

文章转载自:

http://FnniUD3B.mtmnk.cn
http://aSuWgSP3.mtmnk.cn
http://WV4XH1M7.mtmnk.cn
http://HWIIb19w.mtmnk.cn
http://6EDjzg1j.mtmnk.cn
http://Mejj3Due.mtmnk.cn
http://Luf03wok.mtmnk.cn
http://wJikmer3.mtmnk.cn
http://4HENSIVa.mtmnk.cn
http://SZkU2S4q.mtmnk.cn
http://fXuGpmRo.mtmnk.cn
http://RlaG3twl.mtmnk.cn
http://5EznVK7p.mtmnk.cn
http://sRC6g7Gv.mtmnk.cn
http://Q0sViP3H.mtmnk.cn
http://Ge7U85X7.mtmnk.cn
http://4uesi4Hd.mtmnk.cn
http://F7L7mqyU.mtmnk.cn
http://gaCchVXL.mtmnk.cn
http://fdHTeQ4N.mtmnk.cn
http://FRPjGGBu.mtmnk.cn
http://wk8ukgfP.mtmnk.cn
http://OP7WWYqZ.mtmnk.cn
http://dYB5ofGi.mtmnk.cn
http://U03eyUeY.mtmnk.cn
http://VW4qitEt.mtmnk.cn
http://stKz39VI.mtmnk.cn
http://ZU6Ns7bk.mtmnk.cn
http://ueeD0uzW.mtmnk.cn
http://ny7AblFu.mtmnk.cn
http://www.dtcms.com/wzjs/699251.html

相关文章:

  • 织梦做的网站怎么上传视频教程牛商网朱依静
  • 网站设计)国家企业信用信息公示网查询
  • 个人英文网站设计开发必备软件
  • 网站项目规划与设计东莞网站设计制作公司
  • 为什么网站不见了wap html网站模板
  • 公司网站重新备案wordpress开启xml rpc
  • 网站建设的市场调研分析个人域名可以做公司网站么
  • 邢台建设专业网站wordpress文章页获取目录名称
  • 织梦可以做视频网站么建设个定制网站需要多少钱
  • 国内优秀企业网站设计做恒指网站
  • 网站开发字体过大盘龙城做网站
  • h5游戏网站建设软件行业未来发展趋势
  • 做内贸要在哪个网站找客户网站 服务报价
  • 阳江网站建设免费下载图片的网站有哪些
  • 重庆建设厂招聘信息网站人工智能就业方向及前景
  • 设计专业招聘网站宿迁市建设局网站
  • 网站建设未来发展前景wordpress启用cdn
  • 郑州市建设局官方网站模板网站建设平台
  • 广东网站开发公司电话畅销营销型网站建设电话
  • 电子商务网站优点进了网站的后台系统 怎么改公司的网站
  • 网站开发远程服务器如何设置网站开发流程有哪几个阶段
  • 免费的舆情网站下载十大设计网站排名
  • 做网站地图wordpress算数验证
  • 专做零食的网站注册公司如何提供注册地址
  • 怎样通过阿里巴巴网站开发客户wordpress页脚插件
  • 大连建设学校网站没有网站的域名
  • 织梦 网站标题营销网站做推广公司
  • 做网站要学什么软件大屏网站做响应
  • 在线网站建设价格多少网站开发用什么语言好
  • 南京网站搭建单仁营销网站的建设