zoukankan      html  css  js  c++  java
  • vuex学习(二)

     参考:https://segmentfault.com/a/1190000015782272

    vue 2.0+ 你的vue-cli项目中安装 vuex :

    npm install vuex --save

    然后 在src文件目录下新建一个名为vuex的文件夹,为方便引入并在vuex文件夹里新建一个index.js,里面的内容如下:

    1 import Vue from 'vue';
    2 import Vuex from 'vuex';
    3 Vue.use(Vuex);
    4 const store = new Vuex.Store({});
    5  
    6 export default store;

    接下来,在 main.js里面引入store,然后再全局注入一下,这样一来就可以在任何一个组件里面使用this.$store了:

    import Vuex from 'vuex'
    import store from './vuex/index'//引入store
     
    new Vue({
      el: '#app',
      router,
      store,//使用store
      template: '<App/>',
      components: { App }
    })

    说了上面的前奏之后,接下来就是纳入正题了,就是开篇说的state的玩法。回到vuex文件的index.js里面,我们先声明一个state变量,并赋值一个空对象给它,里面随便定义两个初始属性值;然后再在实例化的Vuex.Store里面传入一个空对象,并把刚声明的变量state仍里面:

     1 import Vue from 'vue';
     2 import Vuex from 'vuex';
     3 Vue.use(Vuex);
     4  const state={//要设置的全局访问的state对象
     5      showFooter: true,
     6      changableNum:0
     7      //要设置的初始属性值
     8    };
     9  const store = new Vuex.Store({
    10        state
    11     });
    12  
    13 export default store;

    实际上做完上面的三个步骤后,你已经可以用this.$store.state.showFooter或this.$store.state.changebleNum在任何一个组件里面获取showfooter和changebleNum定义的值了,但这不是理想的获取方式;vuex官方API提供了一个getters,和vue计算属性computed一样,来实时监听state值的变化(最新状态),并把它也仍进Vuex.Store里面,具体看下面代码:

     1 import Vue from 'vue';
     2 import Vuex from 'vuex';
     3 Vue.use(Vuex);
     4  const state={   //要设置的全局访问的state对象
     5      showFooter: true,
     6      changableNum:0
     7      //要设置的初始属性值
     8    };
     9 const getters = {   //实时监听state值的变化(最新状态)
    10     isShow(state) {  //方法名随意,主要是来承载变化的showFooter的值
    11        return state.showFooter
    12     },
    13     getChangedNum(){  //方法名随意,主要是用来承载变化的changableNum的值
    14        return state.changebleNum
    15     }
    16 };
    17 const store = new Vuex.Store({
    18        state,
    19        getters
    20 });
    21 export default store;

    光有定义的state的初始值,不改变它不是我们想要的需求,接下来要说的就是mutations了,mutattions也是一个对象,这个对象里面可以放改变state的初始值的方法,具体的用法就是给里面的方法传入参数state或额外的参数,然后利用vue的双向数据驱动进行值的改变,同样的定义好之后也把这个mutations扔进Vuex.Store里面,如下:

  • 相关阅读:
    Windows下对函数打桩,及Linux类似技术
    WIN10重启后,在任务栏下添加快捷工具栏消失问题修复
    VS2012下std::function的BUG解决办法
    【转载】inno setup 水波纹效果,检测安装vcredist_x86.exe等
    ArchLinux下XFCE的一个问题修复:thunar加载的环境变量不正确
    Daliy Algorithm (GPLT)-- day 94
    Daliy Algorithm (greedy , hash )-- day 93
    Daliy Algorithm (tarjan, greedy, bfs )-- day 92
    Daliy Algorithm (heap,greedy , IQ )-- day 91
    Daliy Algorithm (cf , GPLT )-- day 90
  • 原文地址:https://www.cnblogs.com/wanqingcui/p/10781293.html
Copyright © 2011-2022 走看看