关于vuex和mixin设计的问题

来源:4-7 字号设置功能实现

godlanbo

2020-07-06

  • 这样在组建中大量的依赖全局状态来进行组件的管理,会不会有点使得组件的解耦程度降低了,虽然代码复用上去了,但是感觉组件使用vuex的状态过多,导致组件不够独立化。
  • 还有就是像这样把全部的状态都放在一个mixin中,所有组件都混入的设计模式,会不会不太好啊,还是说老师做项目的经验大多都是这样设计的。因为vue官网文档上都提及,尽量避免使用全局混入,这样将整个一份mixin的混入到多数组件中,会不会有些性能上的问题(毕竟不是每个组件都能用到这份mixin中的全部内容)

若是有这样设计的理由或是项目大多都这样设计的,还望老师指教。

写回答

1回答

扬_灵

2020-07-06

同学你好,首先vuex就是用来做状态管理的,解决组件之间同一状态的共享问题,在项目中存在这大量的组件共享状态的问题,如果我们将状态交由组件传递的话会产生大量的代码,阅读和修改就会需要时间,其次使用mixin是提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。,vue官网文档上都提及,尽量避免使用全局混入这是因为它会影响每个单独创建的 Vue 实例,我们在项目中所使用的是局部混入的方式,只是将组件间公共代码抽离成一个单独的文件,减少代码冗余,关于性能这点你可以将mixin中的公共方法做一下处理,在使用时引入不同的文件,如果不能解决你的问题,可以继续追问。

0
1
godlanbo
谢谢你的回复,因为我此前都是用vuex做那种很难传递的状态管理,然后做组件的时候,多是传递数据进去,这样会有一种组件提供接口出来,灵活使用的感觉。不过想了一下,在这个课程的环境下,确实vuex会减少很多代码的编写。 然后是mixin,我很少使用混入,因此对这方面在项目中的实践方式没有太多个人评价,我是阅读了vue3的设计思路,看到了其中对于混入的思考,当大体量的混入或者引用多个混入在组件中被引用,后来维护组件的时候,容易增加阅读时间(需要去找这个方法或者变量从哪里混入的)。 以上是我的个人看法,还是很谢谢你的回答。
2020-07-06
共1条回复

Vue 实战商业级读书Web APP完整项目

Vue全家桶+最新前端技术+前后端分离架构,完整项目流程

1610 学习 · 1951 问题

查看课程