参考另一篇vue核心功能实现: https://www.yuque.com/allblue-byynd/sfegqs/nc7e9o
问题:
要传递的是复杂数据类型,经过了两层组件传递
在第二层父组件直接修改了数据,在子组件的computed里面不能重新计算,原因是computed依赖的是data上的属性值,并不是props里的值
不知道为什么不能重新计算,watch也监听不到,猜测是跟修改值的方式有关系,没有
解决:
- data 中重定义数据
在data里面定义一个临时的属性,用来承接props的值,
- 添加计算属性
在conputed里面的依赖项换成这个临时的属性,这样就可以触发计算属性了。
也可以通过 $emit 事件传递、添加 .sync 修饰符的方法处理。
