Vuex中getters的使用方法

2024-04-27 13:08

本文主要是介绍Vuex中getters的使用方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Vuex中getters的使用方法

前提脚手架搭好Vuex,项目内store文件夹下的index.js实例代码

export default createStore({state: {todos: [{ id: 1, text: '...1', done: true },{ id: 2, text: '...2', done: false },{ id: 3, text: '...3', done: true }]},getters: {// 基础用法,参数statedoneTodos: state => {return state.todos.filter(todo => todo.done)},// 基础用法,参数gettersdoneTodosCount: (state, getters) => {return getters.doneTodos.length},// 方法传参getTodosById: state => id => {return state.todos.find(todo => todo.id === id)}}
})

基础用法
用法①直接访问
在这里插入图片描述

打印出来的效果↑

<template><div>{{ fn1 }}</div>
</template>
<script>import { mapState } from 'vuex'export default {...computed:{fn1 () {// 直接操作store数据,不使用Vuex的getters属性return this.$store.state.todos.filter(todo => todo.done)}}}
</script>

用法②通过属性访问,参数state(效果同上)

getters:{doneTodos: state => {return state.todos.filter(todo => todo.done)}
}
<template><div>{{ fn2 }}</div>
</template>
<script>import { mapState } from 'vuex'export default {...computed:{fn2 () {// 调用Vuex的getters属性的方法,其相当于store的计算属性// 逻辑操作写在getters里面return this.$store.getters.doneTodos}}}
</script>

用法③方法参数getters
打印出来的效果
在这里插入图片描述

getters:{doneTodos: state => {return state.todos.filter(todo => todo.done)},donTodosCount: (state, getters) => {// 参数getters,调用上面的方法return getters.doneTodos.length}
}
<template><div>{{ fn3 }}</div>
</template>
<script>import { mapState } from 'vuex'export default {...computed:{fn3 () {return this.$store.getters.doneTodosCount}}}
</script>

用法④通过方法访问
在这里插入图片描述

getters: {getTodoById: state => id => {return state.todos.find(todo => todo.id === id)}
}
<template><div>{{ fn4 }}</div>
</template>
<script>import { mapState } from 'vuex'export default {...computed:{fn4 () {// 参数可以绑定(data)局部数据return this.$store.getters.getTodoById(3)}}}
</script>

用法④辅助函数mapGetters
在这里插入图片描述

<template><div>{{ doneTodos}}<br><br>{{ doneTodosCount }}<br><br>{{ getTodoById(3) }}</div>
</template>
// 写法1
<script>import { mapState, mapGetters } from 'vuex'export default {...computed:{// 方法属性同名...mapGetters(['doneTodos','doneTodosCount','getTodoById'])}}
</script>
// 写法2
<script>import { mapState, mapGetters } from 'vuex'export default {...computed:{// 可修改getters属性名字,注意这里使用{}...mapGetters({doneTodos: 'doneTodos',doneTodosCount: 'doneTodosCount',getTodoById: 'getTodoById'})}}
</script>

这篇关于Vuex中getters的使用方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/940586

相关文章

react-select组件使用

1. 在react-select下拉框中鼠标移入时显示标签的title // 在react-select下拉框中鼠标移入时显示标签的title<Selectoptions={options}getOptionLabel={(option) => (<div title={option.label}>{option.label}</div>)}/> 2. 增加下拉框层级数值 // 增加下拉

面试笔记——工厂模式(简单工厂、工厂方法模式、抽象工厂模式)

场景需求:设计一个咖啡店点餐系统。 设计一个咖啡类(Coffee),并定义其两个子类(美式咖啡【AmericanCoffee】和拿铁咖啡【LatteCoffee】);再设计一个咖啡店类(CoffeeStore),咖啡店具有点咖啡的功能。 在不使用工厂模式情况下,类设计如下: 以上类图中的符号表示: +:表示public-:表示private#:表示protected泛化关系(继承) 用带空心

Keil使用技巧及常见问题

文章目录 Keil的使用快捷键Keil中使用Ctrl+Shift+F:在多个文件中搜索变量/函数(Find in files) Keil的使用快捷键 Keil中使用Ctrl+Shift+F:在多个文件中搜索变量/函数(Find in files) 搜索条件说明Find what输入要搜索的关键字指定要搜索的文件类型指定要搜索的文件夹/工程 搜索属性Look in s

STM32使用HAL库驱动USART详解及例程(持续更新......)

文章目录 HAL库串口驱动详解STM32硬件串口收发数据过程串口发送流程--TXD串口接收流程--RXD HAL库运行过程串口接收中断程序配置过程(HAL库): 参考例程STM32F0例程(STM32F030F4P6)STM32F1例程(STM32F103C8T6)STM32F7例程(STM32F767IGTx) HAL库串口驱动详解 STM32硬件串口收发数据过程

keil调试过程查看全局变量和局部变量的方法及编译器优化

keil调试过程查看全局变量和局部变量的方法及编译器优化 一、查看全局变量的方法:Watch Window The Watch window allows to evaluate symbols, registers, and expressions. The window displays the item name, value, and type. Open this window t

电镀回用水除镍树脂的一种设备方法

【除镍树脂CH-90】是一种专门设计用于去除溶液中镍离子的高效吸附材料。随着工业发展和环境保护要求的提高,除镍树脂CH-90在废水处理、金属回收和环境保护等领域的应用越来越广泛。 除镍树脂CH-90的特点在于其高效的吸附性能和选择性。该树脂能够快速、准确地去除溶液中的镍离子,而对其他离子的吸附影响较小。这一特性使得除镍树脂CH-90在处理含镍废水时,能够有效地降低废水中的镍含量,达到环保标准。

vue-cli2,vue-cli3,vite 生产环境去掉console.log

console.log一般都是在开发环境下使用的,在生产环境下需要去除 ,如果手动删除未免也太累了,我们可以用插件对于具体环境全局处理。  vue-cli2 项目build 下面webpack.prod.config.js 文件中: plugins: [new webpack.DefinePlugin({'process.env': env}),new UglifyJsPlugin(

RN使用js让输入框取消和获取焦点(及键盘的监听)

1.自动获取焦点 <TextInputstyle={{width: 90,paddingLeft: 20,}}autoFocus={true} // 自动获取焦点onChangeText={text => setText(text)}value={text}/> 2.取消焦点 import React, { useRef } from 'react';import {TextInput

fopen和fprintf函数的使用

#include<stdio.h>#include<string>using namespace std;#define F_PATH "E:\\梁栋凯\\example\\fopen\\fopen\\liang.txt"int main(void){FILE *fp=NULL; //创建文件指针fp=fopen(F_PATH,"w+");if(NULL==fp){r

Node.js里面 Path 模块的介绍和使用

Node.js path 模块提供了一些用于处理文件路径的小工具,我们可以通过以下方式引入该模块: var path = require("path") 方法描述 序号方法 & 描述1path.normalize(p) 规范化路径,注意'..' 和 '.'。2path.join([path1][, path2][, ...]) 用于连接路径。该方法的主要用途在于,会正确使用当前系统的路径