Vuex的简单使用

一丶个人理解:vuex相对于来说是一个存储空间,也就是说它相当于一个大仓库,里面放的是我们的数据.

二丶我觉得有一个地方用vuex就非常的适合,就是在我们进行组件传值的时候,比如说父子传值,单个的父子传值用一个props来接受很简单,但是你要是给你子的儿子(父亲的孙子),以此类推传值的时候,我们总不能一直用props去一个一个接收吧,这时候就可以用到vuex来传递我们需要的数据了,下面是做了一个简单的加减的操作,不多说了,直接上代码.

<template>
  <div class="home">
           <!-- {{this.$store.state.count}} -->
           <!-- 这里的count1是从index.js里面的state里面拿出来的 -->
           {{count1}}
           <button @click="add(1)">+</button>
           <button @click="jian">-</button>
  </div>
</template>

<script>
//引入辅助函数
import {mapState,mapActions} from "vuex"
export default {
         data(){
             return{
                 
             }
         },
         computed:{
            //  count1(){
            //      return this.$store.state.count
            //  }
            ...mapState({
                count1:state=>state.count
            })
         },
         methods:{
            ...mapActions([
                'add',
                'jian'
            ])
         }
}
</script>

三丶在Vue的项目中有一个store的文件夹,打开它,找到index.js文件,下面是代码.

 1 import Vue from 'vue'
 2 import Vuex from 'vuex'
 3 
 4 Vue.use(Vuex)
 5 
 6 export default new Vuex.Store({
 7   state: {
 8     count:1
 9   },
10   mutations: {
11     add(state,a){
12       state.count++;
13       console.log(a)
14     },
15     jian(state)
16     {
17       if(state.count>1)
18       {
19         state.count--
20       }
21     }
22   },
23   actions: {
24     add(context,a){
25       context.commit("add",a)
26     },
27     jian(context){
28       context.commit("jian")
29     }
30   },
31   modules: {
32   }
33 })
34 //总结 actions用来操作mutations  然后再通过mutations来操作state

注:  代码1中{{ this.$store.state.count}}     这个是直接就可以再页面中获取到我们存储在store里面的index.js里面的count数据;一般不常用这个方法.

posted @ 2019-12-12 18:48  帅气的骑士  阅读(138)  评论(0编辑  收藏  举报