前段时间遇到的一个问题,项目是由支付宝小程序移植过来的vue项目,将didUpdate更换成了updated,跑起来后发现updated生命周期钩子没有执行。
小程序didUpdate组件通信使用的就是普通的父子组件的传值,当时以为是父组件上的数据没有更新,所以导致updated没有执行,不过后来发现父组件的值改变了,但是updated没有执行。找了下官方文档,发现文档中提到了这个坑。
vue官网updatedupdated可能并不会执行,最好的还是使用计算属性或者用watch监听数据变化
watch监听以为差不多这样就可以了,后来随着测试的加深,一般监听时是不能监听到对象属性值的变化的,发现如果监听的是Object类型的复杂数据类型的话,这样写是无法监听key和value的变化的,需要对Object类型进行深层监听
深层监听这样的话,基本上就解决了vue组件beforeUpdate和updated生命周期钩子不执行的问题
网友评论