是什么Vuex?

是什么 Vuex?

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。

简单来说:Vuex 的目的是为了管理共享状态,为了达到这个目的,它制定了一系列的规则,比如修改数据源 state、触发 actions 等等,都需要遵循它的规则,以此来达到让项目结构更加清晰且易于维护的目的

Vuex在项目中的应用

首先vuex的搭建 (准备工作)

  1. 安装vuex:cnpm i install vuex -S
  2. 创建一个store文件夹,在里面创建一个index.js文件内容如下:
import Vue from "vue";
import Vuex from "vuex";
Vue.use(Vuex);
import Vuexpersistence from "vuex-persist";//vuex长久存储
import person from "./person"; //另一个子模块
const vuexLocal = new Vuexpersistence({
    storage: window.localStorage
})

export default new Vuex.Store({
    modules: {
    person  //store中的子模块
    },
    state: {
    searchword:""
    },
    mutations: {
    },
    actions: {
    }
})
  1. 在main.js中引入store
import store from './store'
  1. 在main.js 中,在vue实例中添加store对象
new Vue({
  el: '#app',
  router,
  store, //手动添加
  components: { App },
  template: '<App/>'
})
  1. 运行脚手架

vuex的五大核心

一. Vuex中的state

state:存储状态(变量)

 state:{
        searchword:"",    
    },

二. Vuex中的mutations

mutations: 修 改 状 态 , 并 且 是 同 步 的 ,用来修改state的状态,当从组件中派发一个action,在actions,里面接收,通过actions里面的commit来触发mutations中的方法,从而来改变状态。

mutations:{
updateSearch(state,item){
      state.searchword=item
    },
}
actions:{
updateSearch(context,item){
        context.commit("updateSearch",item)
      },
}
 //vue文件中
methods: {
        click_item(item){
            this.$store.dispatch('updateSearch',item);
        },

三.Vuex中的actions

actions:异步操作。在组件中使用是$store.dispath(’’")来派发action,
actions用来处理mutations中的异步操作,触发mutations中的函数

四. Vuex中的getters

getter:从基本数据(state)派生的数据,相当于state的计算属性

五. Vuex中的modules

store 的子模块,为了开发大型项目,方便状态管理而使用的。

//在主模块中引入且注册
import person from "./person"
modules: {
    person  //store中的子模块
    },
//person子模块
export default {
    namespaced:true,//命名空间 该文件下的 所有属性 不在和其他vuex模块混用
    state:{
        mobile:15036630514,    
    },
    getters:{
    },
    mutations:{
        }
    },
    actions:{
    },

}

Vuex中的plugins

plugins:可以添加一些插件 如下:

import Vuexpersistence from "vuex-persist";//vuex长久存储
const vuexLocal = new Vuexpersistence({
    storage: window.localStorage
})
export default new Vuex.Store({
    modules: {
        person
    },
    plugins: [vuexLocal.plugin],//plugin插件 添加了长久储存的插件
    state: {
        n: 20,
    },
    mutations: {
    ADD_N(state, val) {
            state.n += val;
        }
        }
    },
    actions: {
    }
})

Vuex中的辅助函数

辅助函数
通过辅助函数mapState、mapActions、mapMutations,把vuex.store中的属性映射到vue实例身上,这样在vue实例中就能访问vuex.store中的属性了,对于操作vuex.store就很方便了。
state的辅助函数为mapState,
actions的辅助函数为mapActions,
mutations的辅助函数为mapMutations。
(Vuex实例身上有mapState、mapActions、mapMutations属性,属性值都是函数)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值