纵所周知,vue是单向数据流。
可以在很多文档、或者是vue控制台的提示中看到,不可以在子组件中直接修改props,因为vue是单向数据流。
props是非引用类型数据就不必说了,vue会直接提示你。
但是引用类型数据vue没有提示,并且如果你在子组件修改了props中引用类型数据,父组件对应的数据也会发生改变,这说明子组件props中的变量和父组件的变量指向同一内存地址。
出于单向数据流的原则,我们应该避免在子组件修改props。
除此之外,还有一点需要注意的是,在子组件通过$emit传给父组件的数变量,事实上也是指向同一内存地址。在父组件中直接修改子组件传递过来的变量,子组件中对应的变量值也会发生改变。
出于单向数据流的原则,我们应该避免在父组件修改子组件通过$emit传递的引用类型数据
如有错误请指正。