浅谈浅谈Vuex注入注入Vue生命周期的过程生命周期的过程
这篇文章是【前端词典】系列文章的第 13 篇文章,接下的 9 篇我会围绕着 Vue 展开,希望这 9 篇文章可以使大家加深对
Vue 的了解。当然这些文章的前提是默认你对 Vue 有一定的基础。如果一点基础都没有,建议先看官方文档。
第一篇文章我会结合 Vue 和 Vuex 的部分源码,来说明 Vuex 注入 Vue 生命周期的过程。
说到源码,其实没有想象的那么难。也和我们平时写业务代码差不多,都是方法的调用。但是源码的调用树会复杂很多。
为何使用为何使用 Vuex
使用 Vue 我们就不可避免的会遇到组件间共享的数据或状态。应用的业务代码逐渐复杂,props、事件、事件总线等通信的方
式的弊端就会愈发明显。这个时候我们就需要 Vuex 。Vuex 是一个专门为 Vue 设计的状态管理工具。
状态管理是 Vue 组件解耦的重要手段。
它借鉴了 Flux、redux 的基本思想,将状态抽离到全局,形成一个 Store。
Vuex 不限制你的代码结构,但需要遵守一些规则:
应用层级的状态应该集中到单个 store 对象中
提交 mutation 是更改状态的唯一方法,并且这个过程是同步的
异步逻辑都应该封装到 action 里面
Vuex 注入注入 Vue 生命周期的过程生命周期的过程
我们在安装插件的时候,总会像下面一样用 Vue.use() 来载入插件,可是 Vue.use() 做了什么呢?
import Vue from 'vue';
import Vuex from 'vuex';
Vue.use(Vuex);
Vue.use() 做了什么做了什么
安装 Vue.js 插件。如果插件是一个对象,必须提供 install 方法。如果插件是一个函数,它会被作为 install 方法。install 方法
调用时,会将 Vue 作为参数传入。
以上是官方文档的解释。
接下来我们从源码部分来看看 Vue.use() 都做了什么。
Vue 源码在 initGlobalAPI 入口方法中调用了 initUse (Vue) 方法,这个方法定义了 Vue.use() 需要做的内容。
function initGlobalAPI (Vue) {
......