【VUE】 父组件参数更新,子组件watch监听参数不刷新
参数更新,子组件不刷新不到可能有以下几个方面的原因0、没加watch监听子组件参数变化1、箭头函数2、如果监听的参数为对象,可能因为没有深度监听,选项:deep,为了发现对象内部值的变化,可以在选项参数中指定deep: true。注意监听数组的变动不需要这么做。watch:{data: {// data为监听参数名handl...
·
参数更新,子组件不刷新不到可能有以下几个方面的原因
0、没加watch监听子组件参数变化
1、箭头函数
2、如果监听的参数为对象,可能因为没有深度监听,
选项:deep,为了发现对象内部值的变化,可以在选项参数中指定 deep: true
。注意监听数组的变动不需要这么做。
watch:{
data: { // data为监听参数名
handler: function (val, oldVal) { /* ... */ },
deep: true
}
},
3、如果发现参数监听偶尔可以,那么查一下子组件是否用了v-if
,v-if
每次不展示就会销毁,展示时重新添加dom节点。
解决方法:把v-if
改成v-show
,或者可以在监听里面加上immediate: true
这项,在选项参数中指定 immediate: true
将立即以表达式的当前值触发回调,这样在首次赋值的时候也会触发watch里面的handler事件,写法如下:
PS: 动态组件的切换也是同样销毁重新添加组件
watch:{
data: { // data为监听参数名
handler: function (val, oldVal) { /* ... */ },
immediate: true
}
},
4、Vue.js 不能检测到对象属性的添加或删除
解决方法:通过this.$set(object, key, value)
来进行对象的操作
更多推荐
已为社区贡献12条内容
所有评论(0)