vue-vuex的使用

作后台项目的时候,有时候会须要用到状态管理,VUEX就可以很好的为咱们解决好这个问题。vue

安装 VUEXvuex

npm install vuex --save

具体使用:npm

创建 src/store/index.js缓存

index.js函数

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

const store = new Vuex.Store({
    state:{
        count:1
    },
    getters:{
        getStateCount:function(state){
            return state.count +1;
        }
    },
    mutations:{
        add(state){
            state.count += 1;
        },
        reduce(state){
            state.count -= 1;
        }
    }
})

export default store

main.js文件网站

import store from './store'

接下来咱们就能够写 vuex 的业务代码了this

咱们在视图上绑定这个 count spa

<p>store中的state的count值:{{this.$store.state.count}}</p>

Getters:3d

Getter至关于vue中的computed计算属性,getter 的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被从新计算,这里咱们能够经过定义vuex的Getter来获取,Getters 能够用于监听、state中的值的变化,返回计算后的结果code

视图使用:

<p>store中的state的count值:{{this.$store.getters.getStateCount}}</p>

Mutations

数据咱们在页面是获取到了,可是若是咱们须要修改count值怎么办?若是须要修改store中的值惟一的方法就是提交mutation来修改。

例如:咱们如今Hello World.vue文件中添加两个按钮,一个加1,一个减1;这里咱们点击按钮调用addFun(执行加的方法)和reductionFun(执行减法的方法),而后在里面直接提交mutations中的方法修改值:

这样就解决了,改变改变store里面值的方法。

Actions:

上面使用 Mutations 可以修改 store 里面的值,可是官方并不建议咱们这样作,而是让咱们去提交一个actions,在actions中提交mutation再去修改状态值,接下来咱们修改index.js文件,先定义actions提交mutation的函数:

使用方式:

methods:{
  addFun(){
    // this.$store.commit('add');
    this.$store.dispatch('addFun');
  },
  reduceFun(){
    // this.$store.commit('reduce');
    this.$store.dispatch('reduceFun');
  },
}

这里咱们把commit提交mutations修改成使用dispatch来提交actions;咱们点击页面,效果是同样的。

以上就是咱们实现 vuex 的一个过程。

拓展修改状态:咱们能够利用这个属性来作数据状态的改变

参考:昆明网站建设

https://baijiahao.baidu.com/s?id=1618794879569468435

相关文章
相关标签/搜索