• vuex的使用


    下载安装配置    

    npm install vuex --save
    创建一个store文件夹 ,在里面创建store.js文件


    //store.js里面
    import Vue from "vue"
    import Vuex from "vuex"
    Vue.use(Vuex)

    const store=new Vuex.Store({
      //
    })
    export default store





    需要把这个对象导出,在main文件里面引用  

    import store from "./store/store"
    并且挂载到
    new Vue({
      store
    })


    介绍:

    state:{}, 等同于组件里面的data是放数据的
        -存放状态(共享数据)在组件里面使用 this.$store.state.属性名
    mutations:{}, 等同于组件里面的methods
        -可以放一些方法和改变state里面的状态(数据)
        定义一个方法,在组件里面使用this.$store.commit('方法名')触发这个方法
    getters:{}, 等同于组件里面的computed
        -等同于计算属性,可以把一些组件公用的计算方法放在该对象里面

    例子:

    getters:{
    bb(){
    var that=this;
    var newArr=[];
    that.state.stus.filter((item)=>newArr.push(item.age>21)) //这个箭头函数有返回值
    }
    }

    调用
    this.num=this.$store.getters("bb")


    actions:{},
        -有一些异步操作的代码放在这里面
        通过 content.commit()触发mutations里面的方法
        并且在组件里面使用this.$store.dispatch('ascyonPmsg')来触发该对象里面的方法

     

    mutations: {
    changePmsg(state){
    //异步的代码要放到actions里面去进行改变
    state.pmsg = "改变后的数据啊呵呵"
    }
    }, 
    actions: {
    //content 上下文
    ascyonPmsg(content){
    setTimeout(function () {
    content.commit('changePmsg')
    },1000)
    }
    },

    调用

    this.$store.dispatch('ascyonPmsg')


    modules:{}
        -可以继续因为当项目很大时候,store里面会存储很多数据状态以及一些方法,不方便管理,
    modules可以将store 继续分割模块,方便管理 (注:小项目基本不用)

    modules: {
    a:{
    state:{
    name:'张三',
    age:13
    },
    mutations:{},
    actions:{},
    getters:{}
    },
    b:{}
    }

    调用 this.$store.state.a.name
  • 相关阅读:
    计算机基础-day1
    Day3:Spring-JDBC、事务管理
    Day2:Spring-AOP
    Android------Installation error: INSTALL_FAILED_CONFLICTING_PROVIDER
    Day1:Spring-IoC、DI
    Spring MVC的一例低级错误:Element 'mvc:annotation-driven' must have no character or element information item [children]
    Java阶段小总结
    Day20:DOM(Document Object Model)
    Day13:IO流(补充内容:特殊流对象)
    Android自学路线
  • 原文地址:https://www.cnblogs.com/daifuchao/p/11836797.html
Copyright © 2020-2023  润新知