如何解决如何在大型Vue应用中使用Vuex
Vuex非常棒,太多的优点并不总是很好。
那么多少Vuex太多Vuex?多少支撑钻是多少支撑钻?
让我们想象以下有关编辑联系人的模块。您将如何在组件之间共享数据?您是否愿意将Vuex或props用于多级事件发射?
- 请考虑以下这是一个抽象示例,不要建议更改模块的结构:
- ContactEdit从服务器获取数据。
- ContactEditAvatar显示数据的不可编辑部分(例如 联系人的头像)
- ContactEditForm显示可编辑的数据,并允许用户进行编辑 它。
- ContactEditSubmit包含提交按钮,该按钮将新发布 编辑的数据。
您将如何传递数据?
提供者/注入不被视为选项,因为不建议双向数据绑定。
我们还可以立即取消选项3 ,因为它不会将ContactEditForm中的已编辑数据公开到ContactEditSubmit中的提交按钮。
那1,2和4呢?
选项4 使所有组件变小,逻辑位于相应模板的旁边,并且所有组件都经过了精美的模块化。
但是,在应用变得更大之后,这种方法可能会使跟踪数据的更改变得困难,因此选项2 是一个不错的选择,因为所有模块逻辑都在一个组件中,任何东西都可以容易追踪。
道具和事件也应该能够胜任(选项1 ),乍一看,它实际上看起来更容易,更直观。 但是,我认为这种方法的可扩展性不足,并且将来在组件上发生意外更改时,可能会引起真正的头痛。另外,imo过多的道具会使代码难以阅读。
我个人会使用选项4 ,但是,伙计们,您怎么看?
请在发布回复时与大型SPA分享您的经验。
谢谢,祝您有个愉快而富有成效的一周
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。