vue训练营10 --- vuex使用及理解
回答策略:
1.首先给vuex下一个定义
2.vuex解决了哪些问题,解读理念
3.什么时候我们需要vuex
4.你的具体用法
5.简述原理,提升层级
总结:
1.vuex是状态管理库。它以全局方式集中管理应用的状态,并且可以保证状态变更的可预测性。
2.vuex主要解决的就是多组件之间状态共享的问题。利用各种组件通信方式,虽然也能做到状态共享,但是往往需要多个组件之间保持状态的一致性,这种模式很容易出现问题,也会使程序变得复杂。vuex通过把组件的共享状态抽取出来,以全局单例模式管理,这样任何组件都能用一致的方式获取和修改状态,响应式的数据也能够保证简洁的单向数据流动,我们的代码将变得更结构化且易维护。
3.vuex并非必须的,它帮我们管理共享状态,但却带来更多的概念和框架。如果我们不打算开发大型单页应用或者我们的应用并没有大量全局的状态需要维护,完全没有使用vuex的必要。
4.我在使用vuex过程中有如下理解,首先是对核心概念的理解和运用。将全局状态放在state对象中,它本身是一颗状态树,组件中使用store实例的state访问这些状态;然后有配套的mutation方法修改这些状态,并且只能用mutation修改状态,在组件中调用commit方法提交mutation;如果应用中有异步操作或者复杂逻辑组合,我们需要编写action,执行结束后如果有状态修改仍然需要提交mutation,组件中调用这些action使用dispatch方法派发。最后是模块化,通过modules选项组织拆分出去的各个子模块,在访问状态时注意添加子模块的名称。如果子模块有设置namespace,那么在提交mutation和派发action时还需要额外的命名空间前缀。
5.vuex在实现单向数据流时需要做到数据的响应式,通过源码的学习发现是借用了vue的数据响应化特性实现的,它会利用Vue将state作为data对其进行响应化处理,从而使得这些状态发生变化时,能够导致组件重新渲染。