vue 深度监听watch数组对象,可以执行watch方法,但是得到的新旧值相同的 问题解决方案
vue
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
项目地址:https://gitcode.com/gh_mirrors/vu/vue
免费下载资源
·
首先说一下,watch的基本用法:
watch: {
indexList: {
handler(newVal, oldVal) {
if (this.indexList.length !== 0) {
this.rightBtnText = '确定';
}
},
deep: true
}
}
// 通过 watch 监听indexList的变化,有变化就执行里面的方法,但是输出的的newVal, oldVal是一样的,很奇怪。
然后就百度,各种找解决方法 ,
解决办法如下:
加个compute用函数再返回一下这个值, 再用JSON.parse() 这个方法转一下,目的是破坏原型链:
computed:{
listData(){
return JSON.parse(this.list);
}
},
watch: {
listData: {
handler(newVal, oldVal) {
if (this.indexList.length !== 0) {
this.rightBtnText = '确定';
}
},
deep: true
}
}
这样输出的 值 就不同了
GitHub 加速计划 / vu / vue
207.54 K
33.66 K
下载
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:2 个月前 )
73486cb5
* chore: fix link broken
Signed-off-by: snoppy <michaleli@foxmail.com>
* Update packages/template-compiler/README.md [skip ci]
---------
Signed-off-by: snoppy <michaleli@foxmail.com>
Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 4 个月前
e428d891
Updated Browser Compatibility reference. The previous currently returns HTTP 404. 5 个月前
更多推荐
已为社区贡献3条内容
所有评论(0)