vue 子组件直接更改 props 有啥不良后果?
1.props 不同的类型情况,如为数字,字符串,或对象类型,函数类型,直接修改props的不良后果有区别吗?
2.不加 .sync 修饰符,有啥不良后果?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
1.props 不同的类型情况,如为数字,字符串,或对象类型,函数类型,直接修改props的不良后果有区别吗?
2.不加 .sync 修饰符,有啥不良后果?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
基本类型你修改也没用。
引用类型倒是可以修改,但是数据流向不清晰
比如两个组件都使用了同一个
prop
,A 组件改了,B 组件里可能也会有变化,导致数据变化超出父组件的控制,是个隐患,容易造成问题。1、prop是用来父子间单向数据流动的,父prop的更新会向下传递到子prop,反过来不行。
但是如果prop如果是引用类型(对象和数组),其在子组件的改变也是会导致父prop的意外修改。
这不符合单向数据流的设计初衷,使得数据流向难以把控。
另外一个,父组件每次变更时也会刷新子组件的prop,如果你修改了子组件的prop并将其在代码中使用,可能会意外的发现子prop发生了意料之外的改变,子prop又变成了父prop传入的数值,而且你很难把控改变的时机。
2、sync修饰符只是个语法糖,只有在你必须双向绑定父子组件的时候才使用,不用这个用emit和on也行,原理一样。
建议翻一翻教程,都有的东西