美文网首页让前端飞
Vue核心概念Getter的使用方式

Vue核心概念Getter的使用方式

作者: a333661d6d6e | 来源:发表于2019-02-13 20:56 被阅读23次

今天小编就为大家分享一篇关于Vue核心概念Getter的使用方法,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下。如有不足之处,欢迎批评指正。

有时候我们需要从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的商品价格加倍了。

结语

感谢您的观看,如有不足之处,欢迎批评指正。

获取资料

本次给大家推荐一个免费的学习群,里面概括移动应用网站开发,css,html,webpack,vue node angular以及面试资源等。
对web开发技术感兴趣的同学,欢迎加入Q群:619586920,不管你是小白还是大牛我都欢迎,还有大牛整理的一套高效率学习路线和教程与您免费分享,同时每天更新视频资料。
最后,祝大家早日学有所成,拿到满意offer,快速升职加薪,走上人生巅峰。

相关文章

  • Vue核心概念Getter的使用方式

    今天小编就为大家分享一篇关于Vue核心概念Getter的使用方法,写的十分的全面细致,具有一定的参考价值,对此有需...

  • vuex辅助函数的使用

    vuex是vue的公共状态管理,vuex核心的概念有五个,state,mutation,action,getter...

  • 《图解Vue3.0》- vuex - 第16节 Vuex 核心概

    核心概念 state(mapState) getter mutaion action module 前面四个核心概...

  • vuex学习

    使用vuex也有一段时间了,今天总结一下vuex的使用 vuex有5个核心概念state getter mutat...

  • Day1.Vue(基本使用和define.properties)

    基本使用(概念) 1.vue的三大核心core,vuex(状态管理),vue-Router(路由),也称为VUE全...

  • Vuex 状态管理

    Vue组件间通信方式 Vuex核心概念和基本使用 购物车案例 模拟实现vuex 一、组件内的状态管理流程 状态管理...

  • vuex---核心概念getter

    Getter 有时候我们需要从 store 中的 state 中派生出一些状态,例如对列表进行过滤并计数: 如果有...

  • 中软电商项目组

    - 1.vue双向数据绑定是基于什么原理 +setter,getter核心就是Object.definePro...

  • Vue源码阅读、七

    响应式原理 Vue实现响应式的核心是利用了Object.defindProperty为对象的属性添加getter和...

  • Vuex——核心概念_State

    Vuex的核心概念主要有5点,分别是:State、Getter、Mutation、Action、Module 1....

网友评论

    本文标题:Vue核心概念Getter的使用方式

    本文链接:https://www.haomeiwen.com/subject/nzlfjqtx.html