码迷,mamicode.com
首页 > 其他好文 > 详细

状态管理-vuex

时间:2019-07-29 22:57:16      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:pre   str   out   mod   strong   rip   incr   数据   input   

1、使用vuex

// 使用vuex
// 第一步:装包npm i vuex -S

// 第二步:
import Vuex from ‘vuex‘
Vue.use(Vuex)

// 第三步:
const store = new Vuex.Store({
    state: {
        count: 0
    },
    mutations: {
        incr (state) {
            state.count++
        },
        sub (state, i) {
            state.count -= i;
        }
    }
})

var vm = new Vue({
    el: ‘#app‘,
    // render:将App组件渲染到el指定的div#app中(div#app中其他内容被覆盖)
    render: c => c(App),
    router,
    store // 第四步,挂载到vm
});

 

2、使用【$store.state.变量】获取vuex的数据;使用mutations来操作state中的数据【this.$store.commit(‘方法名‘, 参数)】

<template>
<div>
    <h1>counter组件</h1>
    <!-- 以前 -->
    <!-- <input type="text" v-model="count"/> 
    <input type="button" value="加1" @click="increment"/>
    <input type="button" value="减2" @click="subtract"/>
    -->

    <!-- 使用vuex后 -->
    <input type="text" v-model="$store.state.count"/>
    <input type="button" value="加1" @click="increment"/>
    <input type="button" value="减1" @click="subtract"/>

    <h2> count = {{$store.state.count}} </h2>
</div>
</template>

<script>
export default {
    // 以前count变量来自本组件data区,现在从vuex中取值
    /*data() {
        return {
            //count: 1
        }
    },
    methods: {
        increment() {
            this.count++;
        },
        subtract() {
            this.count--;
        }
        
    }*/

    // 使用vuex后
    methods: {
        increment() {
            this.$store.commit(‘incr‘);
        },
        subtract() {
            // 第二参数:给sub方法传参;注意,只能传一个参数。
            this.$store.commit(‘sub‘, 2);
        }
    }

}
</script>

<style></style>

 

3、使用getters包装数据并总结vuex的使用方式

 

状态管理-vuex

标签:pre   str   out   mod   strong   rip   incr   数据   input   

原文地址:https://www.cnblogs.com/xy-ouyang/p/11267052.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!