vuex 使用方法
Posted 狗哥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vuex 使用方法相关的知识,希望对你有一定的参考价值。
1、安装vuex扩展 : npm install vuex
2、在componets目录下新建 store.js 文件
import Vue from \'vue\' import Vuex from \'vuex\' Vue.use(Vuex) // 定义初始值 const state = { num: 0 } // 获取变量值 const getters = { num: state => state.num } //定义触发状态对象方法,传入state整个对象 //在页面中触发时使用this.$store.commit(\'mutationName\') 触发Mutations方法改变state的值 const mutations = { plus(state, num) { state.num += num; }, minus(state, num) { state.num -= num; } } //异步执行方法,传入参数context,等同于整个store //处理Mutations中已经写好的方法 在页面中触发方式是 this.$store.dispatch(actionName) const actions = { plus({commit}, num) { // 调用mutations 方法 commit(\'plus\', num) }, minus({commit}, num) { commit(\'minus\', num) } } export default new Vuex.Store({ state, mutations, actions, getters }) /** * 定义多个模块 * 定义一个模块,引入各个状态对象或方法 */ // Const moduleA = { // state, // mutations, // getters, // actions // } /** * 引如多个模块 */ // export default new Vuex.Store ({ // modules : { // a : moduleA //引入定义模块 // } // })
属性值介绍:
state:定义初始值
getters:获取变量值
mutations: 定义触发状态对象方法,传入state整个对象,在页面中触发时使用this.$store.commit(\'mutationName\') 触发Mutations方法改变state的值
actions:异步执行方法,传入参数context,等同于整个store,处理Mutations中已经写好的方法 在页面中触发方式是 this.$store.dispatch(actionName)
3、在main.js 里添加引入store.js 代码
// 引入sotre.js import store from \'./components/store.js\' new Vue({ store, // store对象 el: \'#app\', router, render: h => h(App) });
4、新建 TestVuex.vue
<template> <div class="testVuex"> <div>{{num}}</div> <button @click="plus">加2</button> <button @click="minus">加3</button> </div> </template> <script> import {mapGetters} from \'vuex\' export default { name: \'testVuex\', //computed 实时计算 Vue检测到数据发生变动时就会执行对相应数据有引用的函数。 computed: { ...mapGetters([ \'num\' // store.js 里定义num值 ]) }, methods:{ // 调用store.js 里actions定义的方法 plus:function() { this.$store.dispatch(\'plus\', 2); }, minus:function() { this.$store.dispatch(\'minus\', 3); } }, data () { return { } } } </script>
5、效果预览
以上是关于vuex 使用方法的主要内容,如果未能解决你的问题,请参考以下文章