JS——vuex 基本使用

Posted cnloop

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS——vuex 基本使用相关的知识,希望对你有一定的参考价值。

父子组件通信是传递私有数据,非父子组件通信传递的是共享数据,对共享数据进行管理可以帮助我们对全局状态进行统一管理

vuex 安装

npm install vuex --save

vuex 挂载

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

store 创建

var store = new Vuex.Store(
    state : {
        count : 0
    },
    mutations:{
    
    }
)

加载到 vue 实例

new Vue({
    el : ‘#app‘,
    router,
    components : {
        App
    },
    template : ‘<App/>‘,
    store
})

访问 store 数据

<span>组件1:</span><input type=‘text‘ v-model=‘$store.state.count‘>

改变 store 数据

直接操作 $store.state.count 是不被推荐的,store 提供了一个操作 count 值的接口 motations

// 仓库中定义方法,方法的第一个参数永远是state,类似过滤器
var store = new Vuex.Store({
  state: {
    count: 0
  },
  mutations: {
    add(state) {
      state.count++
    }
  }
})
// 组件通过commit方法进行调用
export default {
  methods: {
    add() {
      this.$store.commit("add");
    }
  }
};

调用接口并传参

commit 方法可以使组件改变共享数据,同时也可以传入参数,但是限制只能传入一个自己自定义的参数,所以在传入参数数据量大的情况下推荐使用对象传参

// 形式如下
this.$store.commit("add", obj)

store 过滤器

这种叫法不准确,但是在形式上,store 提供的 getters 接口最后在结果上确实很像过滤器

var store = new Vuex.Store({
  state: {
    count: 0
  },
  mutations: {
    add(state) {
      state.count++
    },
    remove(state, num) {
      state.count = state.count - (num.one + num.two)
    }
  },
  getters: {
    show(state) {
      return "加工一下 state 数据:" + state.count
    }
  }
})

需要注意的是,getters 接口在也很类似于 computed,因为 state 的值只要发生变化,就会触发 getters 方法

以上是关于JS——vuex 基本使用的主要内容,如果未能解决你的问题,请参考以下文章

使用 Vuex 的 Vue.js-electron 应用程序的设置测试

Vuex基本使用

vuex的基本使用

Vuex 基本使用总结

vuex 基本入门和使用

详解vuex