zoukankan      html  css  js  c++  java
  • vuex 进阶 mapState mapGetter mapActions mapMutations

    1 说明

    mapStatemapGetter  获取stategetters;mapStatemapGetter是映射为计算属性=>获取数据(方便简洁写法)

    mapMutationsmapActions方便操作mutationsactions方法  ;mapMutationsmapActions是映射为组件methods方法=>修改数据

    2使用

    state/index.js

    import Vue from 'vue'
    import Vuex from 'vuex'
    Vue.use(Vuex)
    export default new Vuex.Store({
      state: { //存放状态
        nickname:'Simba',
        firstname:'张',
        lastname:'三丰',
        age:20,
        gender:'男',
        money:1000
      },
      getters:{
    //
    getters相当于vue中的计算属性,通过getters进一步处理,得到我们想要的值,而且允许传参,第一个参数就是state
        realname(state){ return state.firstname+state.lastname },
    money_us(state){ return (state.money/7).toFixed(2) }
    },
    mutations:{
      addAge(state,payLoad){
         state.age+=payLoad.number
      }

    }
     
     
    })

     1引入

    import {mapState,mapGetter,mapActions,mapMutations} from 'vuex'

    2 使用

    组件内
    computed: {   //computed是不能传参数的
      value(){
       return this.val/7
      },
      ...mapState(['nickname','age','gender'])
      ...mapGetters(['realname','money_us'])

    //相当于

    //nickname(){return this.$store.state.nickname}
    //age(){return this.$store.state.age}
    //gender(){return this.$store.state.gender}
    }
    html中使用
    <div>{{nickName}}:{{age}}</div>
    <div>{{
    realname}}</div>



    mutations需要通过commit来调用其里面的方法,它也可以传入参数,第一个参数是state,第二个参数是载荷(payLoad),也就是额外的参数
    子组件

       //参数我们可以在调用这个方法的时候写入

    //注意  方法名称保持一致

    <button @click="addAge({number:5})">测试</button>
    methods:{
     ...mapMutations(['addAge'])
       //相当于 
       addAge(){
       //调用的时候第二个参数最好写成对象形式,这样我们就可以传递更多信息。
         this.$store.commit('addAge',{
           number:5
         })
    }


    }
     
  • 相关阅读:
    项目总结-驱虫市场电商数据挖掘
    电商数据处理项目
    Hive sql常用函数公式整理
    拉勾网‘数据分析师’职位招聘信息数据爬取
    鸢尾花数据(PCA主成分分析)
    项目总结-信用评分卡
    某保险公司参保客户分析
    Excel自定义格式参数
    VS2013创建ADO实体模型报:Microsoft.SqlServer.Management.Sdk.Sfc, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91
    AngularJS-学习
  • 原文地址:https://www.cnblogs.com/fanjiawen/p/14486195.html
Copyright © 2011-2022 走看看