【发布时间】:2022-01-11 19:51:54
【问题描述】:
我注意到当推入一个作为 prop 传递给子组件的数组时,我没有收到通常的“避免直接改变 prop”错误。想了想,这是有道理的,因为数组是一个引用,如果有什么事情导致父级重新渲染,子级将因此正确渲染。
正确的方法仍然是向父级发出并让父级对数组进行操作,还是在子组件中对数组进行操作是完全有效的,因为它是一个引用?
【问题讨论】:
标签: javascript vue.js
我注意到当推入一个作为 prop 传递给子组件的数组时,我没有收到通常的“避免直接改变 prop”错误。想了想,这是有道理的,因为数组是一个引用,如果有什么事情导致父级重新渲染,子级将因此正确渲染。
正确的方法仍然是向父级发出并让父级对数组进行操作,还是在子组件中对数组进行操作是完全有效的,因为它是一个引用?
【问题讨论】:
标签: javascript vue.js
请注意,JavaScript 中的对象和数组是通过引用传递的,因此如果 prop 是数组或对象,则在子组件内改变对象或数组本身会影响父状态,Vue 无法对此发出警告。作为一般规则,您应该避免改变任何道具,包括对象和数组,因为这样做会忽略单向数据绑定并可能导致不希望的结果。
【讨论】: