Vuex使用心得

153 阅读2分钟

在使用Vue写项目的过程中,我使用到了Vuex,再此记录一下我的一些理解和心得。

一、理解Vuex

1.官方解释

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

2.个人理解

官方给出的解释有点羞涩难懂,在我使用过后我发现,vuex其实就是vue中一个对各组件共享数据集中管理的仓库。当仓库中数据改变的时候,引用数据的各组件也会自动更新数据。

二、Vuex的优点

1.数据传递的便捷

若不使用vuex对数据进行集中管理,那么各组件单独进行数据的传递就会显得十分的杂乱和复杂,vuex可以将数据进行统一管理,各组件有数据需求可以直接去vuex仓库获取。

2.数据管理的高效

vue中数据是单项流动的,子组件不能对父组件传递的数据进行修改,,这样做的好处是所有状态变化都可以被记录、跟踪,状态变化通过手动调用通知,源头易追溯,没有“暗箱操作”。但是,当我们遇到多个组件同时共享一个状态(数据)时,并且都需要改变状态(数据)时,单项数据的简洁性很容易被破坏,即使我们使用了父子组件的单向数据绑定,但这种模式在这种情况下也会变得非常脆弱,使代码不易维护。这样的话我们可以把公用数据抽离出来进行统一管理和维护,这就是vuex的功能。

三、如何使用Vuex

1.安装

一般而言我们通过vue-cli脚手架创建项目,当项目创建成功后,我们就可以使用以下代码安装Vuex:

npm install vuex 

或者

yarn add vuex

2.引用

import Vue from 'vue';
import Vuex from 'vuex';
Vue.use(Vuex);//使用Vuex

const store=new Vuex.Store({ //创建vuex实例
state:{...},
mutations:{...},
})
export default store;//将实例导出


//以下是进行全局注册
import Vue from 'vue';
import store from './store/index';
new Vue({
    store,
    render: h => h(App)
}).$mount('#app');


四、state,mutations讲解

state中放的是各组件公用的数据,组件需要引用数据的时候可以通过计算属性computed和this.$store.state.(数据名)进行数据的引用。 mutations中是对于各种state中各种数据的函数操作,组件中需要使用这些操作可以通过this.$store.commit('函数名')