状态管理-vuex

Posted xy-ouyang

tags:

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

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的主要内容,如果未能解决你的问题,请参考以下文章

Vuex状态管理机制

:vuex状态(数据)管理

简单使用vuex状态管理

Vue笔记(Vuex全局状态管理器)

vuex状态管理

Vuex状态管理详解