说明

  • 使用vue,如果想对data数据派生一些状态,我们就用到计算属性或者侦听器,同样vux想要派生state中的一些状态,可以在store中定义一个getters属性,它相当于state的计算属性。只有它的依赖发生改变了,它的值才会被重新计算。

基本使用

  • 使用起来也非常的简单,第一个参数默认为state,第二个参数即为自己getters,通过这两个参数,我们可以访问state以及getters的数据。通过return返回计算的的结果即可,此时子组件可以通过$store.getters.xxx 访问此属性了
    var store = new Vuex.Store({
state:{
count: 0,
msg: '你妈在哪里',
msg1: '在家'
}, getters: {
msgFilter: (state, getters) =>{
return state.msg.replace('你妈', '妈妈')
}
}
})
//App组件
<template>
<div>
<h2>App组件</h2>
//这里输出 妈妈在哪里
<h3>{{$store.getters.msgFilter}}</h3>
</div>
</template>
  • 返回一个方法

    • 有时候我们需要根据用户传入的值来返回特定的状态,此时我们可以让getters返回一个方法,可以向该方法传入我们的需要的数据。可以传入多个参数。
    getters: {
msgFilter: (state, getters) =>{
return state.msg.replace('你妈', '妈妈')
}, anwserMsg: state => (msg1, msg2) =>{
return msg1 + + msg2
} } //App组件
//打印 妈妈说:我在家,你在哪里?
<h3>妈妈说:{{ $store.getters.anwserMsg('我在家,', '你在哪里?')}}</h3>
  • 通过mapGetters映射成局部的computed

    • 与mapState一样,需要改名字,就传入一个对象,否则传入一个数组
  computed: {
//把msgFilter 修改成了 msg1
// anwserMsg 修改成了 msg2
...mapGetters({
msg1: 'msgFilter',
msg2: 'anwserMsg'
}), //默认原来的名字
...mapGetters([
'msgFilter',
'anwserMsg'
])
}
  • 注意: 它与state一样,不能直接在子组件里面修改它值,只能通过提交的方式来修改它的值。

vuex之getter(二)的更多相关文章

  1. Vuex基础-Getter

    官方地址:https://vuex.vuejs.org/zh/guide/getters.html Vuex 允许我们在 store 中定义“getter”(可以认为是 store 的计算属性).就像 ...

  2. vuex学习(二)

    参考:https://segmentfault.com/a/1190000015782272 vue 2.0+ 你的vue-cli项目中安装 vuex : npm install vuex --sav ...

  3. vuex的使用二

    1.先看项目的目录结构 2.在main.js里需要引入store这个文件并挂在实例上 import store from './store/store' ............ new Vue({ ...

  4. 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 二十三║Vue实战:Vuex 其实很简单

    前言 哈喽大家周五好,马上又是一个周末了,下周就是中秋了,下下周就是国庆啦,这里先祝福大家一个比一个假日嗨皮啦~~转眼我们的专题已经写了第 23 篇了,好几次都坚持不下去想要中断,不过每当看到群里的交 ...

  5. vuex 源码解析(三) getter属性详解

    有时候我们需要从store中的state中派生出一些状态,例如: <div id="app"> <p>{{reverseMessage}}</p> ...

  6. Vuex之store仓库计算属性Getter

    (1)简介 Getter相当于vue中的computed计算属性,getter 的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被重新计算,这里可以通过定义vuex的Getter来获 ...

  7. Vuex以及axios

    Vuex 简介 vuex是一个专门为Vue.js设计的集中式状态管理架构. 状态? 我们把它理解为在data中需要共享给其他组件使用的部分. Vuex和单纯的全局对象有以下不同: 1.Vuex 的状态 ...

  8. Vuex状态管理模式的面试题及答案

    转载:点击查看原文 1.vuex有哪几种属性? 答:有五种,分别是 State. Getter.Mutation .Action. Module 2.vuex的State特性是? 答: 一.Vuex就 ...

  9. Vuex以及axios 看这个

      vuex  -- 安装   npm i vuex  -- 配置   -- 导入vuex      import vuex from "vuex"   -- vue使用vuex  ...

随机推荐

  1. 09_$.ajax()参数详解及标准写法

    1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如 ...

  2. 前端Tips#3 - 简写的 border-radius 100% 和 50% 是等效的

    本文同步自 JSCON简时空 - 技术博客,点击阅读 视频讲解 视频地址 文字讲解 1.先讲结论 border-radius 这个 css 属性大家应该使用得非常娴熟,现实中用到的场景基本都是四个圆角 ...

  3. window 下配置wamp 环境

    PHP下载 下载php压缩包,几点注意:这里我安装的事apache 所以在 php官方下载页时不是随便下载的,不然可能配置不了apache! 注意我以下图片标注

  4. spring boot介绍

    spring boot简介 1.spring boot是spring家族中的一个全新的框架,它用来简化spring应用程序的创建和开发过程,也可以说spring boot能简化我们之前采用ssm框架进 ...

  5. centos7 编译安装 php7.4

    1. 下载安装编译工具 yum groupinstall 'Development Tools' 2.安装依赖包 yum install libxml2 libxml2-devel openssl o ...

  6. Theia APIs——事件

    上一篇:Theia APIs——Preferences 事件 Theia中的事件或许会让你感到困惑,希望本节能阐述清楚. 来看下面的代码: (来自logger-watcher.ts) @injecta ...

  7. MySQL数据库用户、角色、授权

    权限包括  insert   delete   update   select   all privileges 登录MySQL > mysql -uroot -p Enter password ...

  8. 原生js面向对象编程-选项卡(自动轮播)

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  9. 更加清晰的TFRecord格式数据生成及读取

    TFRecords 格式数据文件处理流程 TFRecords 文件包含了 tf.train.Example 协议缓冲区(protocol buffer),协议缓冲区包含了特征 Features.Ten ...

  10. echarts 使用时,常见配置

    1.隐藏x轴,y轴,网格线 "yAxis": [ { //就是一月份这个显示为一个线段,而不是数轴那种一个点点 "show" : true, "bou ...