• vuex的基本用法


    初接触vuex觉得里面的mapState、mapMutations、mapActions超级难懂,看官方的文档觉得太官方,难以理解,遂自己再学习了一遍。

    mapState、mapMutations、mapActions的用法是基本相同的,理解了其中一个,理解其他的也会很快

    vuex的基础用法

    安装了vuex   npm install vuex --save

    在main.js文件中引用

    import Vue from 'vue'
    import App from './App.vue'
    import store from './store'
    
    Vue.config.productionTip = false
    
    new Vue({
        store,
        render: h => h(App),
    }).$mount('#app')

    新建一个store.js文件

    import Vue from "vue"
    import Vuex from "vuex"
    
    Vue.use(Vuex)
    
    const state={
        money:2,
        count:1
    }
    const mutations={
        add:function(state){
            state.count++;
            state.money+=2;
        },
        reduce:function(state){
            state.count--;
            state.money-=2;
        }
    }
    const actions={
        add:({commit})=>{
            commit('add')
        },
        reduce:({commit})=>{
            commit('reduce')
        }
    }
    export default new Vuex.Store({
        state,
        actions,
        mutations
    })

    mapState的用法

    我对于这一块的内容也是幡然醒悟,如果没有引入mapState,在项目中需要使用$state.state.money。使用了mapState之后,将state的数据放在computed中去进行监听

    import {mapState} from 'vuex'
    computed:{ ...mapState([
    'money', 'count' ]) },

    这样引入后在项目中直接使用money.直接插值。

    <div>{{money}}</div>

    mapMutation的基本用法

    如果没有引入MapMutation的话,调用store里面的函数需要这样使用:

    <button @click="add1">增加</button>
    
    add1:function(){
                    var _this = this;
                    _this.$store.commit('add')
                    console.log(_this.$store)
                    // _this.$store.
    },

    使用后:

    import {mapMutations} from 'vuex'
    methods: {
                ...mapMutations({
                    'add':'add',
                    'reduce':'reduce'
                }),
    }

    这样可以直接使用:

    <button @click="add">增加</button>

    mapActions的用法相同

    同时也可以将本地存储联系起来,这样数据就不会在刷新的时候重置

    import Vue from "vue"
    import Vuex from "vuex"
    
    Vue.use(Vuex)
    
    const state={
        money:localStorage.money || 2,
        count:1
    }
    const mutations={
        add:function(state){
            state.count++;
            state.money+=2;
            localStorage.money=state.money
        },
        reduce:function(state){
            state.count--;
            state.money-=2;
            localStorage.money=state.money
        }
    }
    const actions={
        add:({commit})=>{
            commit('add')
        },
        reduce:({commit})=>{
            commit('reduce')
        }
    }
    export default new Vuex.Store({
        state,
        actions,
        mutations
    })
  • 相关阅读:
    c#随便写写 数据层和表现层,队列执行
    unity代码设置鼠标样式
    Unity c#反射查找类中符合条件的方法并执行
    封装你的协程Unity TaskManager
    基于steamworks获取steam用户头像
    开启Unity项目中VS工程的属性面板
    移动端的动态阴影
    c#静态扩展方法,字典的克隆扩展方法
    Unity热更方案汇总
    lua输入函数名字符串执行函数
  • 原文地址:https://www.cnblogs.com/peilin-liang/p/11959226.html
Copyright © 2020-2023  润新知