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 相关文章推荐
firefox插件Firebug的使用教程
Jan 02 Javascript
jQuery 幻灯片插件(带缩略图功能)
Jan 24 Javascript
jquery滚动条插件jScrollPane的使用介绍
Nov 08 Javascript
javascript模拟地球旋转效果代码实例
Dec 02 Javascript
Jquery操作radio的简单实例
Jan 06 Javascript
JavaScript的strict模式与with关键字介绍
Feb 08 Javascript
js字符串截取函数slice、substring和substr的比较
May 17 Javascript
BootStrap学习系列之布局组件(下拉,按钮组[toolbar],上拉)
Jan 03 Javascript
JavaScript实现水平进度条拖拽效果
Jan 18 Javascript
在javaScript中检测数据类型的几种方式小结
Mar 04 Javascript
js模块加载方式浅析
Aug 12 Javascript
JS实现DOM删除节点操作示例
Apr 04 Javascript
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购物网站支付paypal使用方法
2010/11/28 PHP
php中3种方法统计字符串中每种字符的个数并排序
2012/08/27 PHP
php switch语句多个值匹配同一代码块应用示例
2014/07/29 PHP
PHP 模拟登陆功能实例详解
2019/09/10 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
2020/04/04 PHP
jquery 无限级联菜单案例分享
2013/03/26 Javascript
JavaScript截断字符串的方法
2015/07/15 Javascript
JavaScript继承模式粗探
2016/01/12 Javascript
jquery跟随屏幕滚动效果的实现代码
2016/04/13 Javascript
Bootstrap分页插件之Bootstrap Paginator实例详解
2016/10/15 Javascript
javascript编程实现栈的方法详解【经典数据结构】
2017/04/11 Javascript
vue.js整合vux中的上拉加载下拉刷新实例教程
2018/01/09 Javascript
Vue组件开发技巧总结
2018/03/04 Javascript
jsonp跨域获取百度联想词的方法分析
2019/05/13 Javascript
[01:03:59]2018DOTA2亚洲邀请赛3月30日 小组赛B组VGJ.T VS Secret
2018/03/31 DOTA
Flask框架学习笔记(一)安装篇(windows安装与centos安装)
2014/06/25 Python
使用Python和Scribus创建一个RGB立方体的方法
2019/07/17 Python
python将图片转base64,实现前端显示
2020/01/09 Python
对Tensorflow中Device实例的生成和管理详解
2020/02/04 Python
Python爬取365好书中小说代码实例
2020/02/28 Python
Python读入mnist二进制图像文件并显示实例
2020/04/24 Python
python新手学习使用库
2020/06/11 Python
浅析Python模块之间的相互引用问题
2021/02/26 Python
HTML5应用之文件上传
2016/12/30 HTML / CSS
Java中各种基本数据类型的默认值都是什么
2016/12/22 面试题
应届优秀本科大学毕业生自我鉴定
2014/01/21 职场文书
办公室副主任职责范本
2014/03/08 职场文书
幼儿生日活动方案
2014/08/27 职场文书
学校副校长四风对照检查材料整改措施
2014/09/25 职场文书
简单租房协议书(范本)
2014/10/13 职场文书
可可西里观后感
2015/06/08 职场文书
培训计划通知
2015/07/15 职场文书
公司财务制度:成本管理控制制度模板
2019/11/19 职场文书
python使用glob检索文件的操作
2021/05/20 Python
关于ObjectUtils.isEmpty() 和 null 的区别
2022/02/28 Java/Android
详解MongoDB排序时内存大小限制与创建索引的注意事项
2022/05/06 MongoDB