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

外国网站代理苏州做网站怎么样

外国网站代理,苏州做网站怎么样,小说网站开发对影成三人小说,个人网站注册平台一、Vue2写法 1、watch使用的几种方法 1、通过 watch 监听 data 数据的变化,数据发生变化时,就会打印当前的值 watch: {data(val, value) {console.log(val)console.log(value)}} 2、通过 watch 监听 list 数据的变化,数据发生变化时&…

一、Vue2写法

1、watch使用的几种方法

1、通过 watch 监听 data 数据的变化,数据发生变化时,就会打印当前的值

 watch: {data(val, value) {console.log(val)console.log(value)}}

2、通过 watch 监听 list 数据的变化,数据发生变化时,this.number++(使用深度监听)

 data() {return {list: {'id': 1,'type': 0},number: 0}},watch: {list: {handler(newVal) {this.number++},deep: true}}

3、通过 watch 监听 data 数据的变化,数据发生变化时,执行 change 方法

 watch: {data: 'change' // 值可以为methods的方法名},methods: {change(curVal,oldVal){console.log(curVal,oldVal)}}

2、watch中的immediate、handler和deep属性

1.immediate 和 handler

  1. handler属性在watch中的作用是指定一个回调函数,在监视的数据发生变化时被调用
  2. 这样使用watch时有一个特点,就是当值第一次绑定时,不会执行监听函数,只有值发生改变时才会执行。如果我们需要在最初绑定值的时候也执行函数,则就需要用到immediate属性。
 data() {return {list: {'id': 1,'type': 0},number: 0}},watch: {list: {handler(newVal) {this.number++},immediate: true}}

2.deep深度监听

        当需要监听一个对象的改变时,普通的watch方法无法监听到对象内部属性的改变,此时就需要deep属性对对象进行深度监听

 data() {return {list: {'id': 1,'type': 0},number: 0}},watch: {list: {handler(newVal) {this.number++},deep: true}    }

        设置deep:true则可以监听到 list.id 的变化,此时会给 list 的所有属性都加上这个监听器,当对象属性较多时,每个属性值的变化都会执行 handler。如果只需要监听对象中的一个属性值,则可以做以下优化:使用字符串的形式监听对象属性:

 data() {return {list: {'id': 1,'type': 0}}},watch: {'list.id': {handler(newVal, oldVal) {......},deep: true}    }

这样只会给对象的某个特定的属性加监听器

3、总结

        数组(一维、多维)的变化不需要通过深度监听,对象数组中对象的属性变化则需要deep深度监听

二、Vue3写法

侦听一个或者多个数据的变化,数据变化时执行回调函数,俩个额外参数 immediate控制立刻执行,deep开启深度侦听

1、侦听单个数据

 <script setup>// 1. 导入watchimport { ref, watch } from 'vue'const count = ref(0)// 2. 调用watch 侦听变化watch(count, (newValue, oldValue)=>{console.log(`count发生了变化,老值为${oldValue},新值为${newValue}`)})</script>

2、侦听多个数据

侦听多个数据,第一个参数可以改写成数组的写法

 <script setup>// 1. 导入watchimport { ref, watch } from 'vue'const count = ref(0)const name = ref('cp')// 2. 调用watch 侦听变化watch([count, name], ([newCount, newName],[oldCount,oldName])=>{console.log(`count或者name变化了,[newCount, newName],[oldCount,oldName])})</script>

3、immediate属性

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

 <script setup>// 1. 导入watchimport { ref, watch } from 'vue'const count = ref(0)// 2. 调用watch 侦听变化watch(count, (newValue, oldValue)=>{console.log(`count发生了变化,老值为${oldValue},新值为${newValue}`)},{immediate: true})</script>

4、deep(深度监听)

通过watch监听的ref对象默认是浅层侦听的,直接修改嵌套的对象属性不会触发回调执行,需要开启deep

 <script setup>// 1. 导入watchimport { ref, watch } from 'vue'const state = ref({ count: 0 })// 2. 监听对象statewatch(state, ()=>{console.log('数据变化了')})const changeStateByCount = ()=>{// 直接修改不会引发回调执行state.value.count++}</script>​<script setup>// 1. 导入watchimport { ref, watch } from 'vue'const state = ref({ count: 0 })// 2. 监听对象state 并开启deepwatch(state, ()=>{console.log('数据变化了')},{deep:true})const changeStateByCount = ()=>{// 此时修改可以触发回调state.value.count++}</script>

http://www.yayakq.cn/news/42010/

相关文章:

  • 北京房地产网站建设太原网站建设技术托管
  • 做网站一天赚多少钱网站网站开发软件
  • 网站开发具体步骤网站显示正在建设是什么意思
  • 早厦门构网站建设怎么制作自己的网页
  • 巩义网站建设联系电话官网的网站开发费用
  • 济南建站方案赣州做网站建设
  • 镇江市质监站网址wordpress网站换字体颜色
  • 北京市住房城乡建设部网站网站设计优点
  • 建设企业网站有哪些阳泉那有做网站的
  • 开个做网站的公司 知乎张家口网站建设工作室
  • 轮播网站合肥专业做网站的公司
  • 蚌埠北京网站建设手机平台网站开发
  • 购物商城网站开发镇海阿里巴巴关键词优化
  • 三明网站建设上海网站空间服务器
  • 大型网站系统图厦门logo设计公司
  • 深圳建设银行宝安支行网站电商创业项目有哪些
  • 海口网站建设呢安徽网新科技有限公司官网
  • 使用aspx做电影网站清河做网站哪儿好
  • 上海兼职做网站站外推广营销方案
  • 公文写作 课程中心网站建设营销策略分析论文
  • 南京医院网站建设做网站宣传
  • 的建站公司宣传片拍摄脚本模板
  • wordpress 仿neoeaae沈阳网站优化推广方案
  • 网站建设吗简洁大气企业网站源码 后台
  • 南宁网站托管4徐汇区网站建设
  • iis7 网站无法显示该页面做广告推广哪家好
  • jsp做网站都可以做什么哪里有好网站设计
  • 企业网站设计方案建设银行网站下载中心在哪
  • 公司的网站建设公司网站建设网站建设制作设计seo优化珠海
  • 绿茵足球网站建设政务服务 网站 建设方案