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.ajax传递中文参数的解决方法 推荐
Mar 28 Javascript
javascript学习笔记(三)BOM和DOM详解
Sep 30 Javascript
浅谈javascript中this在事件中的应用
Feb 15 Javascript
深入浅析knockout源码分析之订阅
Jul 12 Javascript
BootStrap轻松实现微信页面开发代码分享
Oct 21 Javascript
jQuery制作input提示内容(兼容IE8以上)
Jul 05 jQuery
Vue+Element使用富文本编辑器的示例代码
Aug 14 Javascript
jQuery选择器特殊字符与属性空格问题
Aug 14 jQuery
angularjs路由传值$routeParams详解
Sep 05 Javascript
jQuery 同时获取多个标签的指定内容并储存为数组
Nov 20 jQuery
JavaScript实现简易聊天对话框(加滚动条)
Feb 10 Javascript
vue3获取当前路由地址
Feb 18 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
法压式咖啡之制作法
2021/03/03 冲泡冲煮
smarty静态实验表明,网络上是错的~呵呵
2006/11/25 PHP
PHP mail 通过Windows的SMTP发送邮件失败的解决方案
2009/05/27 PHP
php错误提示failed to open stream: HTTP request failed!的完美解决方法
2011/06/06 PHP
php的慢速日志引起的Mysql错误问题分析
2014/05/13 PHP
smarty表格换行实例
2014/12/15 PHP
一个非常完美的读写ini格式的PHP配置类分享
2015/02/12 PHP
javascript XML数据显示为HTML一例
2008/12/23 Javascript
JS的replace方法详细介绍
2012/11/09 Javascript
css transform 3D幻灯片特效实现步骤解读
2013/03/27 Javascript
jQuery中$.fn的用法示例介绍
2013/11/05 Javascript
为Javascript中的String对象添加去除左右空格的方法(示例代码)
2013/11/30 Javascript
JavaScript编程中容易出BUG的几点小知识
2015/01/31 Javascript
JS设置CSS样式的方式汇总
2017/01/21 Javascript
详解从Vue.js源码看异步更新DOM策略及nextTick
2017/10/11 Javascript
JS实现分页浏览横向图片(类轮播)实例代码
2017/11/06 Javascript
Canvas实现微信红包照片效果
2018/08/21 Javascript
vue在index.html中引入静态文件不生效问题及解决方法
2019/04/29 Javascript
layer.open提交子页面的form和layedit文本编辑内容的方法
2019/09/27 Javascript
你不可不知的Vue.js列表渲染详解
2019/10/01 Javascript
js将日期格式转换为YYYY-MM-DD HH:MM:SS
2020/09/18 Javascript
微信小程序绘制半圆(弧形)进度条
2020/11/18 Javascript
[03:49]2016完美“圣”典风云人物:AMS专访
2016/12/06 DOTA
Python中使用pprint函数进行格式化输出的教程
2015/04/07 Python
最大K个数问题的Python版解法总结
2016/06/16 Python
Python多线程应用于自动化测试操作示例
2018/12/06 Python
python 求1-100之间的奇数或者偶数之和的实例
2019/06/11 Python
Python中低维数组填充高维数组的实现
2019/12/02 Python
python打印文件的前几行或最后几行教程
2020/02/13 Python
Python多进程编程multiprocessing代码实例
2020/03/12 Python
Python开发之身份证验证库id_validator验证身份证号合法性及根据身份证号返回住址年龄等信息
2020/03/20 Python
什么是python的函数体
2020/06/19 Python
使paramiko库执行命令时在给定的时间强制退出功能的实现
2021/03/03 Python
历史教育专业个人求职信
2013/12/13 职场文书
班组建设经验交流材料
2014/05/12 职场文书
Python如何利用正则表达式爬取网页信息及图片
2021/04/17 Python