vuex及其辅助函数简单使用
Posted alex-song
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vuex及其辅助函数简单使用相关的知识,希望对你有一定的参考价值。
1、新建store文件夹,内部新建index.js
文件内部内容如下:
写法一
import Vuex from "vuex"; import Vue from "vue"; Vue.use(Vuex); // 第一种写法: const state={ count:0, num:100 } const getters={ changeState(){ return state.count/4 } } const actions={ acCountAdd({commit},val){ commit(‘muCountAdd‘,val) }, acCountMinus({commit},val){ commit(‘muCountMinus‘,val) }, } const mutations={ muCountAdd(state,val){ state.count+=val }, muCountMinus(state,val){ state.count-=val } } export default new Vuex.Store({ state, getters, actions, mutations })
写法二:
export default new Vuex.Store({ state:{ count:0, num:100 }, getters:{ changeState(state){ return state.count/4 } }, actions:{ acCountAdd({commit},val){ commit(‘muCountAdd‘,val) }, acCountMinus({commit},val){ commit(‘muCountMinus‘,val) }, }, mutations:{ muCountAdd(state,val){ state.count+=val }, muCountMinus(state,val){ state.count-=val } }, })
截图:
2、不使用辅助函数时组件内基本用法----list.vue页面
<template> <div> <h2>list</h2> <!-- 不使用辅助函数时,使用属性的方式 --> <h3>vuex中的count:{{$store.state.count}}</h3> <h3>vuex中的count:{{$store.getters.changeState}}</h3> <button @click="btnClick">减少vuex的值</button> </div> </template> <script> export default { name: "List", data() { return { }; }, computed:{ }, methods:{ btnClick(){ // 调用方法的方式 this.$store.dispatch(‘acCountMinus‘,5) } } }; </script>
截图:
3、使用辅助函数时组件内写法----home.vue页面
<template> <div> <h2>home</h2> <h3>vuex中的state的count:{{count}}</h3> <h3>vuex中的getters的changeState:{{changeState}}</h3> <!-- 使用action辅助函数后,可以直接调用acCountAdd方法 --> <button @click=‘acCountAdd(10)‘>home改变vuex</button> </div> </template> <script> import {mapState, mapMutations, mapActions, mapGetters} from "vuex" export default { name: "Home", data() { return { }; }, created() { }, computed:{ // 使用state辅助函数,使用对象方式时,名称可以不一致 ...mapState({ count:state=>state.count }), // 使用getters辅助函数,使用对象方式时,名称可以不一致 ...mapGetters({ changeState:‘changeState‘ }) }, methods: { // 使用mutations辅助函数,使用对象方式时,名称可以不一致 ...mapMutations({ muCountAdd:‘muCountAdd‘ }), // 使用actions辅助函数,使用对象方式时,名称可以不一致 ...mapActions({ acCountAdd:‘acCountAdd‘ }) }, }; </script>
截图:
以上是关于vuex及其辅助函数简单使用的主要内容,如果未能解决你的问题,请参考以下文章
Vuex进阶使用之modules模块化划分mapStatemapActions辅助函数的使用
vuex中的模块化(modules)和命名空间(namespaced),以及四个辅助函数
vue:vuex中mapStatemapGettersmapActions辅助函数及Module的使用