前置知识
如果父组件传入子组件值,并且子组件监听的话,也不好用,因为vux源码我都改成过这样, 父组件的值改变时,vux里面的watch根本不生效, 应该有某种只读保护。
虽然如此,即使它逃出了vue的onupdate这个流程, 但是它还是逃不过vue的组件的渲染mounted和 created这个流程,所以我们用v-if ,在父组件改变值时, 利用v-if 改成false 在改成true, 它就会被重新渲染,这样即使它是只读的,但是它也逃不过被重新初始化的命运
还有一个坑就是 vux子组件对我们传入的data数组不是深度监听,要改变引用的指向它才能监听,并且就连v-if都不能改变。
我搜索了一下 原因应该是即使是v-if 它的这个刷新也是有条件的,
1. 如果数据是基本类型存在栈里面,则v-if会刷新,
2. 如果数据是对象存在堆中, v-if倾向于看到栈内存指向改变时才刷新, 说白了基本上data()里面的内容,都是vue在管,你以为改变了data()里面的数据,但是vue改变不会采用,vue是有缓存的,它可能更倾向于选择缓存