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 相关文章推荐
Stop SQL Server
Jun 21 Javascript
javascript Array.remove() 数组删除
Aug 06 Javascript
JS 树形递归实例代码
May 18 Javascript
JavaScript Ajax编程 应用篇
Jul 02 Javascript
AngularJS入门教程之Select(选择框)详解
Jul 27 Javascript
JS如何设置cookie有效期为当天24点并弹出欢迎登陆界面
Aug 04 Javascript
判断横屏竖屏(三种)
Feb 13 Javascript
Vue计算属性的学习笔记
Mar 22 Javascript
使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例
Jan 25 jQuery
cropper js基于vue的图片裁剪上传功能的实现代码
Mar 01 Javascript
layui table 多行删除(id获取)的方法
Sep 12 Javascript
layui use 定义js外部引用函数的方法
Sep 26 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 模拟POST提交的2种方法详解
2013/06/17 PHP
php利用单例模式实现日志处理类库
2014/02/10 PHP
ThinkPHP3.2.3框架邮件发送功能图文实例详解
2019/04/23 PHP
Prototype使用指南之base.js
2007/01/10 Javascript
永不消失的title提示代码
2007/02/15 Javascript
javascript实现的listview效果
2007/04/28 Javascript
js post方式传递提交的实现代码
2010/05/31 Javascript
jQuery+.net实现浏览更多内容(改编php版本)
2013/03/28 Javascript
zepto与jquery的区别及zepto的不同使用8条小结
2016/07/28 Javascript
JavaScript中的子窗口与父窗口的互相调用问题
2017/02/08 Javascript
VUE页面中加载外部HTML的示例代码
2017/09/20 Javascript
js中this的指向问题归纳总结
2018/11/28 Javascript
详解小程序如何避免多次点击,重复触发事件
2019/04/08 Javascript
解决layui的table插件无法多层级获取json数据的问题
2019/09/19 Javascript
关于vue利用postcss-pxtorem进行移动端适配的问题
2019/11/20 Javascript
javascript实现简易数码时钟
2020/03/30 Javascript
在vue中使用echarts(折线图的demo,markline用法)
2020/07/20 Javascript
JavaScript中的函数式编程详解
2020/08/22 Javascript
vue界面发送表情的实现代码
2020/09/11 Javascript
JavaScript实现原型封装轮播图
2020/12/27 Javascript
Vue中引入svg图标的两种方式
2021/01/14 Vue.js
Python内置函数bin() oct()等实现进制转换
2012/12/30 Python
使用python解析xml成对应的html示例分享
2014/04/02 Python
Python psutil模块简单使用实例
2015/04/28 Python
Python搜索引擎实现原理和方法
2017/11/27 Python
利用pyinstaller将py文件打包为exe的方法
2018/05/14 Python
python开发准备工作之配置虚拟环境(非常重要)
2019/02/11 Python
Python中的self用法详解
2019/08/06 Python
python pyqtgraph 保存图片到本地的实例
2020/03/14 Python
PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)的步骤详解
2020/11/02 Python
ECCO爱步美国官网:来自丹麦的鞋履品牌
2016/11/23 全球购物
日本高岛屋百货购物网站:TAKASHIMAYA
2019/03/24 全球购物
建筑总经理岗位职责
2014/02/02 职场文书
《小壁虎借尾巴》教学反思
2014/02/16 职场文书
2014年德育工作总结
2014/11/20 职场文书
vue如何清除浏览器历史栈
2022/05/25 Vue.js