1,在父传子的情况下,父组件的数据更新,会通知子组件自动更新,
2,在子组件内部,不能直接修改父组件传过来的props,props是只读的
在组件中直接用 v-model绑定父组件传过来的数据是不合理的,如果希望修改父组件传给子组件的值(浅拷贝):一般是引用类型
(1)应该在子组件data中创建一个变量获取props的值,再去修改这个data的值,
(2)在子组件中使用$emit触发事件,让父组件去修改这个值
,简单数据类型是可以修改的,
(单向数据流可以理解为水往低处流,水就是props,)
2,深拷贝和浅拷贝的理解?
浅拷贝:对于基本类型,直接复制数据值,对于引用类型,只复制对象的引用地址,新旧对象指向同一个内存地址,修改其中一个对象的值另一个对象的值也会随之改变
通俗易懂理解为:一件衣服两个人穿,不管你穿还是我穿都是这件衣服
深拷贝:对于基本类型,直接复制数据值,对于引用类型,开辟新的空间,新的对象里复制一个一模一样的对象,新老对象不共享内存,修改其中一个对象的值不影响另一个对象的值
通俗易懂理解为:A给B分享和A一样连接的衣服,但是A衣服不管是破了还是脏了,都不影响B的衣服
使用场景:
浅拷贝:服务器发fetch请求放在store中通过props传递到界面,对这堆数据进行修改,
深拷贝:当想用某个对象,但是不改变原对象,用深拷贝创建一个新的对象