Vuex基础应用

官方文档中描述 “Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式”,重点讲解 state、getters、mutations、actions 等核心概念,最终实现数据共享,本节实现在 Vue 项目中配置 Vuex,步骤如下。

(1)安装 Vuex,打开终端,在终端中执行以下命令。

npm install vuex -S

(2)引用 Vuex,打开 main.js,在 main.js 中引用 Vuex,代码如下。

import Vuex from 'vuex'
Vue.use(Vuex)

(3)创建 Vuex 实例对象,成功引用 Vuex 之后,就可以像 Vue 一样创建实例对象了,代码如下。

new Vue({
  el: '#app',
  router,
  store, //将Vuex实例挂载到Vue对象
  components: { App },
  template: '<App/>'
})

代码解析如下。

配置对象中的 state 相当于 Vue 中的 data 属性,用来存放数据。

(4)将 Vuex 实例对象挂载到 Vue 实例中,代码如下。

<div class="hello">
   <h1>{{$store.state.num}}</h1>
</div>

挂载到 Vue 实例之后,Vue 中的所有组件都可以使用 Vuex 中的值,例如当前在 Vuex 中定义了 num 属性,若要在 HelloWorld 组件中使用 num 属性,代码如下。

HelloWorld 组件代码如下。

import Vue from 'vue';
import Vuex from 'vuex';

Vue.use(Vuex);

var store = new Vuex.Store({
  state: {
    // 相当于 Vue 中的 data
    num: 10
  }
});

export default store;

语法是使用插值表达式及 $store.state.公共数据,运行代码,在 HelloWorld 组件中可以拿到 Vuex 中定义的属性,这是 Vuex 的基本用法。

为了方便后期维护 Vuex 代码,下面讲解 Vuex 代码分离。在 src 目录下新建 store 文件夹,在 store 文件夹下新建 index.js,代码如下。

var store = new Vuex.Store({
  state: {
    // 相当于 Vue 中的 data
    num: 10
  }
})

代码解析如下。

  • Vuex 是依赖 Vue 的,需要先引入 Vue。

  • 要遵循 common.js 规范,使用 export default 导出 store 模块。

最后只需要在 main.js 中引用模块即可,代码如下。

import store from './store'