vuex之state、actions、mutations,2024历年阿里前端面试真题

使用场景


在一个项目开发中频繁的使用组件传参的方式来同步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为单一状态树,在state中需要定义我们所需要管理的数组、对象、字符串等等,

在组件中取

{{ count }}

//* 每当 store.state.count 变化的时候, 都会重新求取计算属性,并且触发更新相关联的 DOM。

mapState 辅助函数


当一个组件需要获取多个状态的时候,将这些状态都声明为计算属性会有些重复和冗余。

所以我们可以使用 mapState 辅助函数来帮助我们生成计算属性:

getter

=========================================================================

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’])

Mutation

===========================================================================

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
img

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开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

  • 12
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值