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 相关文章推荐
ie和firefox中img对象区别的困惑
Dec 27 Javascript
js 复制或插入Html的实现方法小结
May 19 Javascript
解析offsetHeight,clientHeight,scrollHeight之间的区别
Nov 20 Javascript
jquery实现的导航固定效果
Apr 28 Javascript
jQuery下拉友情链接美化效果代码分享
Aug 26 Javascript
JavaScript的Vue.js库入门学习教程
May 23 Javascript
使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例
Jan 25 jQuery
解决Vue打包之后文件路径出错的问题
Mar 06 Javascript
vue实现商品加减计算总价的实例代码
Aug 12 Javascript
每个 JavaScript 工程师都应懂的33个概念
Oct 22 Javascript
D3.js(v3)+react 实现带坐标与比例尺的柱形图 (V3版本)
May 09 Javascript
JavaScript this关键字的深入详解
Jan 14 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 CKEditor 上传图片实现代码
2009/11/06 PHP
8个必备的PHP功能实例代码
2013/10/27 PHP
利用JQuery+EasyDrag 实现弹出可拖动的Div,同时向Div传值,然后返回Div选中的值
2009/10/24 Javascript
浅谈JSON和JSONP区别及jQuery的ajax jsonp的使用
2014/11/23 Javascript
基于jQuery实现顶部导航栏功能
2016/12/27 Javascript
bootstrap table实例详解
2017/01/06 Javascript
基于Bootstrap的标签页组件及bootstrap-tab使用说明
2017/07/25 Javascript
vue简单封装axios插件和接口的统一管理操作示例
2020/02/02 Javascript
jQuery实现朋友圈查看图片
2020/09/11 jQuery
[06:24]DOTA2亚洲邀请赛小组赛第三日 TOP10精彩集锦
2015/02/01 DOTA
[01:09:10]NB vs Liquid Supermajor小组赛 A组胜者组决赛 BO3 第一场 6.2
2018/06/04 DOTA
详解Python中的__new__、__init__、__call__三个特殊方法
2016/06/02 Python
Python爬虫爬取一个网页上的图片地址实例代码
2018/01/16 Python
Django中STATIC_ROOT和STATIC_URL及STATICFILES_DIRS浅析
2018/05/08 Python
Python创建普通菜单示例【基于win32ui模块】
2018/05/09 Python
APIStar:一个专为Python3设计的API框架
2018/09/26 Python
对python制作自己的数据集实例讲解
2018/12/12 Python
python爬虫获取百度首页内容教学
2018/12/23 Python
Python3 修改默认环境的方法
2019/02/16 Python
详解Python用户登录接口的方法
2019/04/17 Python
python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例
2020/03/06 Python
Python趣味入门教程之循环语句while
2020/08/26 Python
python 如何停止一个死循环的线程
2020/11/24 Python
深入浅出CSS3 background-clip,background-origin和border-image教程
2011/01/27 HTML / CSS
css3编写浏览器背景渐变背景色的方法
2018/03/05 HTML / CSS
Myprotein丹麦官网:欧洲第一运动营养品牌
2019/04/15 全球购物
工业设计毕业生自荐信
2014/04/13 职场文书
庆六一开幕词
2015/01/29 职场文书
数学考试作弊检讨书300字
2015/02/16 职场文书
个人简历求职信范文
2015/03/20 职场文书
企业法人任命书
2015/09/21 职场文书
《蟋蟀的住宅》教学反思
2016/02/17 职场文书
企业管理制度设计时要注意的几种“常见病”!
2019/04/19 职场文书
甜美蛋糕店的创业计划书模板,拿来即用!
2019/08/21 职场文书
JS Canvas接口和动画效果大全
2021/04/29 Javascript
JavaScript函数柯里化
2021/11/07 Javascript