在一个项目开发中频繁的使用组件传参的方式来同步data中的值,一旦项目变得很庞大,管理和维护这些值将是相当棘手的工作。
Vue为这些被多个组件频繁使用的值提供了一个统一管理的工具——Vuex
当多个组件需要操作到同一个数据的时候可以使用
Vuex 的核心概念由五部分组成: State (存放状态)、Getter (加工state成员给外界)、Mutation (state成员操作,必须是同步函数)、Action (异步操作)和 Module (模块化状态管理)。
下面是我的文件目录,将state、actions、mutaions都抽出来
vue4.x版本,使用的是一个函数式创建vuex实例的方式
在indexjs文件中
import { createStore } from ‘vuex’
// 在store/indexjs创建一个新的 store 实例
import { createStore } from ‘vuex’;
import getters from ‘./getters’
import mutations from ‘./mutations’
import actions from ‘./actions’
import state from ‘./state’
export default createStore({
state,
getters,
mutations,
actions
});
========================================================================
state为单一状态树,在state中需要定义我们所需要管理的数组、对象、字符串等等,
在组件中取
{{ count }}
//* 每当 store.state.count 变化的时候, 都会重新求取计算属性,并且触发更新相关联的 DOM。
当一个组件需要获取多个状态的时候,将这些状态都声明为计算属性会有些重复和冗余。
所以我们可以使用 mapState 辅助函数来帮助我们生成计算属性:
=========================================================================
Vuex 允许我们在 store 中定义“getter”(可以认为是 store 的计算属性)。就像计算属性一样,getter 的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被重新计算。
在getterjs文件中
export default {
getCount(state,getters) { //getters 可以获取到getter中的方法 比如getCount
return state.count
}
}
//获取 this.$store.getters.getCount
或者也可以通过mapGetters 辅助函数来获取
1.对象取别名的方式
…mapGetters({
// 把 this.getCount
映射为 this.$store.getters.getCount
getCount1: ‘getCount’
})
2.数组的方式
…mapGetters([‘getCount’])
===========================================================================
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
Vue 编码基础
2.1.1. 组件规范
2.1.2. 模板中使用简单的表达式
2.1.3 指令都使用缩写形式
2.1.4 标签顺序保持一致
2.1.5 必须为 v-for 设置键值 key
2.1.6 v-show 与 v-if 选择
2.1.7 script 标签内部结构顺序
2.1.8 Vue Router 规范
Vue 项目目录规范
2.2.1 基础
2.2.2 使用 Vue-cli 脚手架
2.2.3 目录说明
2.2.4注释说明
2.2.5 其他
CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
1.3 指令都使用缩写形式
2.1.4 标签顺序保持一致
2.1.5 必须为 v-for 设置键值 key
2.1.6 v-show 与 v-if 选择
2.1.7 script 标签内部结构顺序
2.1.8 Vue Router 规范
Vue 项目目录规范
2.2.1 基础
2.2.2 使用 Vue-cli 脚手架
2.2.3 目录说明
2.2.4注释说明
2.2.5 其他
CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】