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 相关文章推荐
jQuery版仿Path菜单效果
Dec 15 Javascript
javascript为下拉列表动态添加数据项
May 23 Javascript
js对象继承之原型链继承实例
Jan 10 Javascript
PHP实现的各种中文编码转换类分享
Jan 23 Javascript
深入理解angularjs过滤器
May 25 Javascript
vue.js初学入门教程(1)
Nov 03 Javascript
JS数组返回去重后数据的方法解析
Jan 03 Javascript
bootstrap treeview 扩展addNode方法动态添加子节点的方法
Nov 21 Javascript
javascript填充默认头像方法
Feb 22 Javascript
在react中使用vuex的示例代码
Jul 30 Javascript
解决bootstrap中下拉菜单点击后不关闭的问题
Aug 10 Javascript
JS中forEach()、map()、every()、some()和filter()的用法
May 11 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转换IP地址到真实地址的方法详解
2013/06/09 PHP
解析Win7 XAMPP apache无法启动的问题
2013/06/26 PHP
Joomla简单判断用户是否登录的方法
2016/05/04 PHP
CI框架整合smarty步骤详解
2016/05/19 PHP
Ajax和PHP正则表达式验证表单及验证码
2016/09/24 PHP
Mootools 1.2教程(3) 数组使用简介
2009/09/14 Javascript
浏览器脚本兼容 文本框中,回车键触发事件的兼容
2010/06/21 Javascript
jQuery与ExtJS之选择实例分析
2010/08/19 Javascript
js 动态修改css文件的方法
2014/08/05 Javascript
详解JavaScript操作HTML DOM的基本方式
2015/10/21 Javascript
Bootstrap Fileinput文件上传组件用法详解
2016/05/10 Javascript
JS选取DOM元素的简单方法
2016/07/08 Javascript
微信小程序 教程之wxapp视图容器 scroll-view
2016/10/19 Javascript
使用jQuery实现简单的tab框实例
2017/08/22 jQuery
Vue-cli 使用json server在本地模拟请求数据的示例代码
2017/11/02 Javascript
webpack搭建vue 项目的步骤
2017/12/27 Javascript
nodejs操作mongodb的填删改查模块的制作及引入实例
2018/01/02 NodeJs
Vue+Element实现网页版个人简历系统(推荐)
2019/12/31 Javascript
es6中new.target的作用和使用场景简单示例分析
2020/03/14 Javascript
原生js实现点击按钮复制内容到剪切板
2020/11/19 Javascript
vue监听滚动事件的方法
2020/12/21 Vue.js
vue 组件基础知识总结
2021/01/26 Vue.js
vue 根据选择的月份动态展示日期对应的星期几
2021/02/06 Vue.js
python实现输入数字的连续加减方法
2018/06/22 Python
Django url,从一个页面调到另个页面的方法
2019/08/21 Python
详解HTML5中download属性的应用
2015/08/06 HTML / CSS
美国最大婚纱连锁店运营商:David’s Bridal
2019/03/12 全球购物
苏格兰领先的多渠道鞋店:Begg Shoes
2019/10/22 全球购物
GWebs公司笔试题
2012/05/04 面试题
企业行政文员岗位职责
2013/12/03 职场文书
尽职尽责村干部自我鉴定
2014/01/23 职场文书
公务员群众路线专题民主生活会发言材料
2014/09/17 职场文书
大学生村官工作心得体会
2016/01/23 职场文书
《自己的花是让别人看的》教学反思
2016/02/19 职场文书
springboot用户数据修改的详细实现
2022/04/06 Java/Android
Java GUI编程菜单组件实例详解
2022/04/07 Java/Android