Vuex介绍2

续上一个的Vuex今天继续介绍

4 核心概念-getters

除了state之外,优势还需要从state中派生一些状态,这些状态时依赖state的,此时会用到getters

例如:state中定义了list,为1-10的数组,组件中,需要显示所有大于5的数据

state:{list:[1,2,3,4,5,6,7,8,9,10]
}
1.定义getters
getters:{
// 注意
// (1)getters函数的第一个参数是 state
// (2)getters函数的第二个参数是 getters中所有的方法
// (3)getters函数必须要有返回值filterList(state,getters){return state.list.filter(item => item>5)}
}

getter的返回值会根据它的依赖被缓存起来,且只有当他的依赖值发生了改变才会被重新计算。

2.访问getters

① 通过 store 访问 getters

{{ $store.getters.filterList }}

② 通过辅助函数 mapGetters 映射

computed:{...mapGetters(['filterList'])
}{{ filterList }}

5 核心概念-模块module(进阶语法)

由于vuex使用单一状态树,应用的所有状态会集中到一个比较大的对象。当应用变得非常复杂时,store对象就有可能变得相当臃肿。(当项目越来越大的时候,vuex就会变得越来越难以维护)

为解决上述问题,Vuex允许将 store 分割成模块(module)。每个模块拥有自己的 state、mutation、action、getter、甚至是嵌套子模块---从上至下进行同样方式的分割。

模块拆分 例如:user模块:在store下新建modules文件,里面用于存放模版user.js

在user.js中

const state = {userInfo:{name:'zs',
`		age:18}
}const mutations = {}
const actions = {}
const getters = {}export default {state,   // 这里的 state 对象是模块的局部状态mutations,actions,getters
}

在 index.js 文件中

import user from './modules/user'const store = new Vuex.Store({modules:{user}
})

5.1 使用模块中 state 的数据

尽管已经分模块了,但其实子模块的状态,还是会挂到根级别的state 中,属性名就是模块名

① 直接通过模块名访问 $store.state.模块名.xxx

② 通过 mapState 映射

默认跟级别的映射 mapState(['xxx'])

子模块的映射 mapState('模块名',['xxx']) ----- 需要开启命名空间

export default{namespaced:true,state,mutations,actions,getters
}

5.2 使用模块中 getters 中的数据

① 直接通过模块名访问 $store.getters[' 模块名/xxx']

② 通过 mapGetters 映射

默认跟级别的映射 mapGetters(['xxx'])

子模块的映射 mapGetters('模块名',['xxx']) ----- 需要开启命名空间

export default{namespaced:true,state,mutations,actions,getters
}

5.3 使用模块中 mutations 的调用语法

调用子模块中的mutations:

① 直接通过模块名访问 $store.commit[' 模块名/xxx ',额外参数]

② 通过 mapMutations 映射

默认跟级别的映射 mapMutations(['xxx'])

子模块的映射 mapMutations('模块名',['xxx']) ----- 需要开启命名空间

export default{namespaced:true,state,mutations,actions,getters
}

5.4 使用模块中的 actions 的调用语法

调用子模块中 actions:

① 直接通过 store 调用 $store.dispatch('模块名/xxx',额外参数)

② 通过 mapActions 映射

默认跟级别的映射 mapActions('[xxx]')

子模块的映射 mapActions('模块名',['xxx']) -------需要开启命名空间

export default{namespaced:true,state,mutations,actions,getters
}

注意:默认模块中的getter、mutation和actions 会被挂载到全局,需要开启命名空间,才会挂载到子模块。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/584416.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PIE-Engine简介

PIE-Engine,是航天宏图基于云计算、物联网、大数据和人工智能技术自主研发的一站式地球科学大数据实时计算平台,平台构建了基于云原生的并行高效底层架构,助力地球科学应用的产业化发展。(摘自官网) 前天,我…

web前端开发网页制作html/css结课作业

效果图展示: 注意事项: 引用JQuery文件地址和图片地址要更换一下。 百度网盘链接: http://链接:https://pan.baidu.com/s/1wYkmLr7csjBwQY6GmlYm4Q?pwd4332 提取码:4332 html界面展示: main.css代码部…

写给工作6年的程序员的一封信

准大牛 ;兄, 希望你不会反感我给你的这个特别的称号,我们程序员中的大部分工作到5~6年这个节骨眼上,不出意外的话…准大牛…了,此时的你技术能力正在成熟或者已然成熟;架构设计力初现峥嵘;创新能…

当技术相遇:DevOps之道解析

目录 前言 持续集成/持续交付(CI/CD) 容器化和编排工具 监控和日志管理 云服务 前言 DevOps是一种软件开发和运维(Development Operations)的方法论,旨在通过促进开发团队和运维团队之间的合作与沟通&#xff0c…

C++ 结构体(面向对象编程)

面向对象编程的优势 相比于分而治之的结构化程序设计,强调大处着眼的面向对象程序设计的思想,更适合于开发大型软件。得益于数据抽象、代码复用等面象对象的固有特征,软件开发的效率获得极大的提升,成本却大幅降低。 面向对象三…

Linux中磁盘管理与文件系统

目录 一.磁盘基础: 1.磁盘的结构: 2.硬盘的数据结构: 3.硬盘存储容量 : 4.硬盘接口类型: 二.MBR与磁盘分区: 1.MBR的概念: 2.硬盘的分区: 为什么分区: 2.表示&am…

10-让Java性能提升的JIT深度剖析

文章目录 JVM的语言无关性解释执行与JITC1、C2与Graal编译器C1编译器C2编译器 分层编译(了解即可)热点代码热点探测方法调用计数器回边计数器 编译优化技术方法内联锁消除标量替换逃逸分析技术逃逸分析的原理逃逸分析 JVM的语言无关性 跨语言(语言无关性&#xff0…

浅谈技术架构的演进过程

前言 最近在学习Redis、Doctor相关技术知识,它们与分布式系统有着很大的关系。 而对于分布式系统,它本身就是随着业务的不断推进,技术架构不断演进而得到发展和实现的。而所谓的分布式系统,实际上就是想办法引入更多的硬件资源&am…

python 异步Web框架sanic

我们继续学习Python异步编程,这里将介绍异步Web框架sanic,为什么不是tornado?从框架的易用性来说,Flask要远远比tornado简单,可惜flask不支持异步,而sanic就是类似Flask语法的异步框架。 github&#xff1…

系统学习Python——装饰器:函数装饰器-[装饰器状态保持方案:外层作用域和全局变量]

分类目录:《系统学习Python》总目录 闭包函数(带有外围def作用域引用和嵌套的def)常常可以实现相同的效果,特别是用于像被装饰的最初咱数这样的静态数据时。然而在下面这个例子中,我们也需要外层作用域中的一个计数器&…

{MySQL} 数据库约束 表的关系 新增删除 修改 查询

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、数据库约束1.1约束类型:1.2 NULL约束1.3unique 唯一约束1.4 DEFAULT:默认值约束1.5 PRIMARY KEY:主键约束1.6 FOREIGN K…

Kaggle:数据科学竞赛的殿堂与个人成长的舞台

一、产品简介: 它是一个举办数据科学竞赛、托管数据库、编写和分享代码的在线平台。这个数据集就像一个超级大的信息库,包含了我们日常生活中的各种事情,比如电子游戏的销量啊,还有空气质量如何受到污染等等。这些信息都是现实中…

java面试题20

Java中的类加载机制可继续通过自定义类加载器来实现热部署、插件化和动态加载等功能,使得应用程序能够在运行时加载未知的类和资源。 什么是Java中的多线程(Multithreading)?它有什么作用? 答案:多线程是一…

排查格式化符与待格式化参数不一致导致的程序崩溃问题

目录 1、问题说明 2、初步分析 3、进一步分析 3.1、查看崩溃时的函数调用堆栈

车载毫米波雷达及芯片新趋势研究1--毫米波雷达与其它车载传感器互补,研发及量产门槛较高

1.1 毫米波雷达是利用毫米波电磁波波束工作的雷达,车载是首要应用场景  毫米波雷达是一种以波长位于1-10mm、频率在30-300GHz的电磁波作为放射波的雷达传感器。  毫米波雷达利用毫米波波束进行工作。①检测障碍物时: 直接通过有无回波确认&#xff…

[递归] 指数型枚举

题目描述 ​ 从 1−n 这 n 个整数中随机选取任意多个,每种方案里的数从小到大排列,按字典序输出所有可能的选择方案。 输入 ​ 输入一个整数 n。(1≤n≤10) 输出 ​ 每行一组方案,每组方案中两个数之间用空格分隔。…

06-C++ 类和对象-多态

类与对象 多态 1. 简介 一个事物的多种形态,简称多态。 物的多态 同一个人在不同人面前,角色不同 如: 在父母面前在对象面前在朋友面前在同事面前 事的多态 同一种事情,在不同情况下展现不同 如: 吃饭 中国人 筷子 …

8天狂收6100颗星,可商用!东京工业、麻省理工等开源Stream Diffusion

加州大学伯克利分校、东洋大学、东京工业大学、麻省理工学院和筑波大学等研究人员,联合开源了一款创新性实时交互图像生成框架——Stream Diffusion。 Stream Diffusion的技术创新点在于,将传统的顺序去噪变成流批处理去噪,消除了漫长的等待…

install mpirun

ubuntu install mpirun : sudo apt install mpich centos install mpirun: download mpich-4.1.2.tar.gz from Downloads | MPICH tar xf mpich-4.1.2.tar.gz cd mpich-4.1.2 ./configure --disable-fortran make;make install

vue项目hdr格式文件放在assets下rgbeloader.load获取不到问题解决

如下图 我再App.vue组件中这样写 艾特符号定位 告诉系统 要src下的assets下的xhdr下的xidis.hdr 但是运行项目 他会告诉你找不到这个资源 我们改一下 我们组件时 App.vue 与assets同在 src目录下 用 ./去找 这样也是找不到的 我们需要将它放在静态资源包public下 public路…