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

格泰网站建设网页版梦幻西游探案任务攻略

格泰网站建设,网页版梦幻西游探案任务攻略,山西网站制作工具,安徽工程建设信息网新网站watch函数 在组合式 API 中#xff0c;我们可以使用 watch 函数在每次响应式状态发生变化时触发回调函数 watch(ref,callback#xff08;newValue,oldValue#xff09;#xff0c;option:{}) ref:被监听的响应式量#xff0c;可以是一个 ref (包括计算属性)、一个响应式…watch函数 在组合式 API 中我们可以使用 watch 函数在每次响应式状态发生变化时触发回调函数 watch(ref,callbacknewValue,oldValueoption:{}) ref:被监听的响应式量可以是一个 ref (包括计算属性)、一个响应式对象、一个 getter 函数、或多个数据源组成的数组 callback:回调函数当被监听的响应式量变化是触发回调callback有两个参数类型和ref一致值是捕获到的变化后的ref和变化前的ref option: 对象提供一些监听函数的监听参数比如是否开启深层监听 一个最简单的监听示例 script setup import { ref, watch } from vueconst count ref(0);watch(count, () {console.log(count.value); })/scripttemplatedivspan{{ count }}/span/divbutton clickcountclick/button /template 当按钮点击时count递增watch函数会捕获count的变化并触发回调函数打印出count的值 这里 点击了20下每次变化都触发了一次回调 监听getter script setup import { ref,reactive, watch } from vueconst count ref(0); const obj reactive({num:0});watch(count, (num) {console.log(count,num); })watch(() obj.num , (num) {console.log(sum,num); })/scripttemplatedivspansum/spanspan{{ count }}/spanspan{{ obj.num }}/span/divbutton clickcount,obj.numclick/button /template 这里不能直接监听响应式对象的值obj.sum 而是需要用一个返回该属性的 getter 函数要监听的值( () obj.sum )  深层监听器 深层侦听需要遍历被侦听对象中的所有嵌套的属性对于一个对象来说没有深度监听只有当整个对象改变才会被捕获 虽然不能直接监听响应式对象的值但是可以直接监听响应式对象这会隐式的激活深层监听 divspansum/spanspan{{ count }}/spanspan{{ obj.num }}/span/divbutton clickcount,obj.numclick/button const obj reactive({num:0});watch( obj, (newValue,oldValue){console.log(newValue,oldValue); }) 可以看出来回调的两个对象参数它们式相等的两个值 当你监听对象内嵌套的对象时则需要手动开启深层监听否则只有当整个对象改变时才能被捕获 divspansum/spanspan{{ count }}/spanspan{{ obj.num }}/span /div button clickcount,obj.num,ob.obj.numclick/button span嵌套对象的属性{{ ob.obj.num }}/span const ob ref({obj:{num:0,str:hello},count:0 })watch(()ob.value.obj, (newValue,oldValue){console.log(newValue,oldValue); },{deep:true }) 可以看到开启深层监听后就可以捕获到变化响应了 立刻回调和一次回调 {deep:true,immediate:true,once:true } 除了深层回调还有两个参数immediateonce布尔值它们分别表示立刻执行一次回调在开始捕获之前和只回调一次只捕获一次响应变化 watchEffect函数 watchEffect会自动监听能访问到的且发生了响应变化的值并且只跟踪回调中被使用到的属性而不是递归地跟踪所有的属性这有时候比深层监听遍历所有属性要更好但是要注意它仅会在其同步执行期间才b捕获响应变化。在使用异步回调时只有在第一个 await 正常工作前访问到的属性才会被捕获。 watchEffect(callbacknewValue,oldValueoption:{}) callback:回调函数当被监听的响应式量变化是触发回调callback有两个参数类型和ref一致值是捕获到的变化后的ref和变化前的ref option: 对象提供一些监听函数的监听参数 watch 和 watchEffect watch 和 watchEffect 都能响应式地执行能响应的回调触发页面变化。它们之间的主要区别是追踪响应式依赖的方式 watch需要提供监听目标监听属性更加精确仅在监听的目标变化时触发 watchEffect: 不需要提供监听补码监听时没有那么明确自动追踪所有能访问到的参与回调的响应式属性。 div :stylebackground-color:${color}spansum/spanspan{{ count }}/spanspan{{ obj.num }}/span /div button clickcount,obj.num,ob.obj.numclick/button button clickcolorgreenchange/button span嵌套对象的属性{{ ob.obj.num }}/spanwatchEffect((newValue,oldValue){console.log(捕获到了变化,count.value,\n,newValue,oldValue);color.value red; }) 回调中有count当count变化时直接被捕获改变了背景颜色同时它还默认响应了一个函数 回调触发时机 watchEffect(callback,option:{})option:flush:post/sync (指明post则会在响应后回调指明sync则会在响应前回调)// 或者你可以用对应的函数watchPostEffect() watchSyncEffect()// 它们的效果是一样的 如果想在侦听器回调中能访问被 Vue 更新之后的所属组件的 DOM你需要指明 flush: post 或者使用 watchPostEffect() 如果想在侦听器回调在 Vue 进行任何更新之前触发你需要指明 flush: sync 或者使用 watchSyncEffect() 停止监听​ 在 setup() 或 script setup 中,绝大部分的监听器会随着组件销毁而结束。 关键点是监听器必须用同步语句创建如果用异步回调创建一个监听器那么它不会绑定到当前组件上你必须手动停止它以防内存泄漏。 手动停止一个侦听器可以调用 watch 或 watchEffect 返回的函数 const unwatch watchEffect(() {})// ...当该侦听器不再需要时 unwatch() 执行这个返回的函数就可以结束监听释放内存 代码总结 script setup import { ref,reactive, watch,watchEffect } from vueconst count ref(0); const obj reactive({num:0}); const color ref(); const ob ref({obj:{num:0,str:hello},count:0 })watch(count, (num) {console.log(count,num); })watch(() obj.num , (num) {console.log(sum,num); })watch( obj, (newValue,oldValue){console.log(newValue,oldValue); })watch(()ob.value.obj, (newValue,oldValue){console.log(newValue,oldValue); },{deep:true,// immediate:true,// once:true })watchEffect((newValue,oldValue){console.log(捕获到了变化,count.value,\n,newValue,oldValue);color.value red; }) /scripttemplatediv :stylebackground-color:${color}spansum/spanspan{{ count }}/spanspan{{ obj.num }}/span/divbutton clickcount,obj.num,ob.obj.numclick/buttonbutton clickcolorgreenchange/buttonspan嵌套对象的属性{{ ob.obj.num }}/span /template
http://www.w-s-a.com/news/311239/

相关文章:

  • 佛山网页网站设计线上怎么做推广和宣传
  • 多个域名绑定同一个网站案例
  • 建设网站都需要准备什么代理加盟微信网站建设
  • 网站备案没有了wordpress 添加按钮
  • 湖南建设银行宣传部网站福田蒙派克空调滤芯安装位置图
  • wap网站搜索wordpress工作室模板
  • 青岛金融网站建设如何提交网站地图
  • 制作简单门户网站步骤网站建设论文的摘要
  • 可以直接进入网站的正能量照片学做静态网站
  • 织梦做社交网站合适吗网站的市场如何制作
  • 阳曲网站建设价格多少四川佳和建设工程网站
  • 免费注册店铺位置sem seo什么意思
  • 建筑网站搜图电子商务网站建设渠道
  • 学校网站内容四川手机网站开发
  • 网站制作公司违法商业网站运营成本
  • 显示佣金的网站是怎么做的广告设计主要做哪些
  • 做阿里网站的分录济南seo网站排名关键词优化
  • 北京建设银行纪念钞预定官方网站wordpress中文优化版
  • 宝安做棋牌网站建设找哪家效益快创意设计师个人网站
  • 做线上网站需要多少钱系统开发板价格
  • 建筑企业登录哪个网站wordpress feed地址
  • 网站建设流程百科提升seo搜索排名
  • 杭州网站建设 巴零做销售怎么和客户聊天
  • 北京自己怎样做网站wordpress oauth2插件
  • 上海800做网站wordpress建站的好处
  • 婚纱摄影网站设计模板如何做好网站内容
  • cdn网站加速招商计划书模板ppt
  • 我在某网站网站做代理开发小程序外包
  • 设计网站国外商城网站的建设费用
  • 网站开发工作需要什么专业学做网站游戏教程