Vue核心概念Getter的使用方法


Posted in Javascript onJanuary 18, 2019

有时候我们需要从store中的state中派生出一些状态。

如果有多个组件需要用到此属性,我们要么复制这个函数,或者抽取到一个共享函数然后在多处导入它——无论哪种方式都不是很理想。

Vuex 允许我们在store中定义getter属性(可以认为是 store 的计算属性)。就像计算属性一样,getter 的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被重新计算。

比如这里我们在Page4.vue里面需要对商品价格加倍,我们就可以使用Getter。

使用Getter

store.js,我们在state下面加入getters里面有一个商品价格加倍的方法。

// 在分离出来的vuex文件中安装 Vuex 
import Vue from 'vue' 
import Vuex from 'vuex' 
Vue.use(Vuex) 
// 每一个Vuex仓库中只能包含一个store实例
export const store = new Vuex.Store({ 
  state: { // 把页面显示数据写在store.js文件 
    goodsList: [ 
      { name: '赣州橙子', price: '8.8' }, 
      { name: '新疆哈密瓜', price: '2.0' }, 
      { name: '山东大枣', price: '3.2' }, 
      { name: '阳澄湖大闸蟹', price: '10.0' } 
    ] 
  },
  // getters是vuex中的计算属性对象
  getters: {
    //商品价格加倍;其中goodsPriceDoubble(state)中有一个state参数表示state中的数据对象
    goodsPriceDoubble: state => {
      let goodsPriceDoubble = state.goodsList.map(currentValue => {
        return {
          name: currentValue.name,
          price: currentValue.price *2
        }
      })
      return goodsPriceDoubble;
    }
  }
})

在page4.vue里面修改成如下:

<ul class="ul_list">
      <li v-for="item in goodsPriceTwo">
        <p class="name">商品:{{item.name}}</p>
        <p class="price">价格:¥{{item.price}}</p>
      </li>
    </ul>

在computed中加入如下方法:

computed: {
     goodsPriceTwo() {
       //this.$store.getters.vuex getters中的对应的回调函数的函数名
       return this.$store.getters.goodsPriceDoubble;
    }
   }

显示效果就是page4的商品价格加倍了。

Vue核心概念Getter的使用方法

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Javascript 相关文章推荐
为Yahoo! UI Extensions Grid增加内置的可编辑器
Mar 10 Javascript
编写兼容IE和FireFox的脚本
May 18 Javascript
jquery显示隐藏input对象
Jul 21 Javascript
jquery表单验证插件(jquery.validate.js)的3种使用方式
Mar 28 Javascript
Web性能优化系列 10个提升JavaScript性能的技巧
Sep 27 Javascript
jQueryUI 拖放排序遇到滚动条时有可能无法执行排序的小bug及解决方案
Dec 19 Javascript
微信小程序 开发之顶部导航栏实例代码
Feb 23 Javascript
jQuery插件HighCharts实现2D柱状图、折线图的组合多轴图效果示例【附demo源码下载】
Mar 09 Javascript
深究AngularJS之ui-router详解
Jun 13 Javascript
基于Require.js使用方法(总结)
Oct 26 Javascript
微信小程序中转义字符的处理方法
Mar 28 Javascript
VUE之图片Base64编码使用ElementUI组件上传
Apr 09 Vue.js
Vue唯一可以更改vuex实例中state数据状态的属性对象Mutation的讲解
Jan 18 #Javascript
JavaScript数据结构之栈实例用法
Jan 18 #Javascript
Vue核心概念Action的总结
Jan 18 #Javascript
js取小数点后两位四种方法
Jan 18 #Javascript
jQuery移动端跑马灯抽奖特效升级版(抽奖概率固定)实现方法
Jan 18 #jQuery
jquery获取file表单选择文件的路径、名字、大小、类型
Jan 18 #jQuery
jQuery实现适用于移动端的跑马灯抽奖特效示例
Jan 18 #jQuery
You might like
PHP发送短信代码分享
2015/08/11 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
2016/01/14 PHP
解决FLASH需要点击激活的代码
2006/12/20 Javascript
用tip解决Ext列宽度不够的问题
2008/12/13 Javascript
基于Jquery的动态创建DOM元素的代码
2010/12/28 Javascript
jquery中防刷IP流量软件影响统计的一点对策
2011/07/10 Javascript
javascript实现原生ajax的几种方法介绍
2013/09/21 Javascript
JQuery each打印JS对象的方法
2013/11/13 Javascript
从数据库读取数据后将其输出成html标签的三种方法
2014/10/13 Javascript
JavaScript学习笔记之Cookie对象
2015/01/22 Javascript
js中hash和ico的关联分析
2015/02/05 Javascript
javascript实现html页面之间参数传递的四种方法实例分析
2015/12/15 Javascript
前端js实现文件的断点续传 后端PHP文件接收
2016/10/14 Javascript
ES6新增的math,Number方法
2017/08/06 Javascript
babel的使用及安装配置教程
2018/02/22 Javascript
详解Vue2.0配置mint-ui踩过的那些坑
2018/04/23 Javascript
jQuery实现的鼠标拖动浮层功能示例【拖动div等任何标签】
2018/12/29 jQuery
小程序转发探索示例
2019/02/19 Javascript
Python异常对代码运行性能的影响实例解析
2018/02/08 Python
python脚本生成caffe train_list.txt的方法
2018/04/27 Python
Python3.0中普通方法、类方法和静态方法的比较
2019/05/03 Python
Python 实现加密过的PDF文件转WORD格式
2020/02/04 Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
2020/11/28 Python
解决pytorch下出现multi-target not supported at的一种可能原因
2021/02/06 Python
乐高积木玩具美国官网:LEGO Shop US
2016/09/16 全球购物
优质飞蝇钓和渔具:RiverBum
2020/05/10 全球购物
建筑施工员岗位职责
2013/11/26 职场文书
大学生职业生涯规划书范文
2014/01/04 职场文书
积极分子思想汇报
2014/01/04 职场文书
给学校的建议书
2014/03/12 职场文书
2014企业领导班子四风对照检查材料思想汇报
2014/09/17 职场文书
公司租房协议书
2014/10/14 职场文书
有限责任公司股东合作协议书
2014/12/02 职场文书
农民工工资承诺书大全
2015/05/04 职场文书
领导新年致辞2016
2015/07/29 职场文书
Python万能模板案例之matplotlib绘制直方图的基本配置
2022/04/13 Python