2# vuex vuex是管理vue里集中式管理数据(一处修改,多处使用)的仓库,一般用于中大型项目的开发, 当你不确定是否使用vuex的时候就不要使用了。 学习阶段必须要用 公司用不用看是否有要求
1.什么是状态 我们使用一条数据去管理一个视图,那么这个数据我们就称之为 ‘状态’ 2.vuex是做什么的? 管理数据的 Vuex是一个集中式的存储管理中心,vuex中可以用来存储 数据( 状态 ) vuex也是一个状态管理中心,它也可以进行状态的管理 3.什么是状态管理模式? 我们使用一条数据去管理一个视图,那么这种管理模式就称之为 状态管理分别为: actions 、 state 、 mutations
1.actions表示动作的创建者,它的作用是创建动作,然后发送动作, 用于用户交互、后端数据交互 举例:一个用户点击了登陆按钮 2.mutations 表示动作的出发者,它的作用是用来修改数据 -更新视图 3.state它是数据的存储者,它的作用是定义数据【 状态 】1.分片指的是是否拆分数据
数据不分片数据分片2.分片是靠一个项目来实现的 modules
3.vuex的使用流程(数据不分片) 数据不分片就是将数据 放在一起 以下例子可以实现组件通信
1.安装 yarn add vuex 生产环境直接安装 2.在src里创建 store文件夹,里面新建index.js 引入插件 vue vuex 利用use中间件使用vuex 再创建store模块 导出store模块 3.在main里注入store模块import Vue from 'vue' import Vuex from 'vuex' import shopsModule from 'views/shops_list/store' Vue.use(Vuex) const store = new Vuex.Store({ modules:{ shopsModule } }) export default store import request from 'utils/request' import API from 'api' const GET_TABLE_DATA = 'GET_TABLE_DATA' const shopsModule = { state: { //存放数据 数据储存者 tableData: null }, actions: { //数据交互 动作创建者 数据请求者 async getTableData({ commit }) { const result = await request({ url: API.shops_list, method: 'get' }) const action = { //创建动作 type: GET_TABLE_DATA, //动作类型 payload: result //负载 } commit(action) //将动作发送走 } }, mutations: { //修改数据 更新视图 数据修改者 连接者 [GET_TABLE_DATA](state, action) { state.tableData = action.payload } } }
