vuex面试题
# vuex
介绍一下 Vuex
简述 Vuex 的实现原理
Vuex 怎么请求异步数据
redux 和 vuex 的区别
vuex 如何设计一个前进后退功能
使用 Vuex 只需执行 Vue.use(Vuex),并在 Vue 的配置中传入一个 store 对象的示例,store 是如何实现注入的?
state 内部是如何实现支持模块配置和模块嵌套的?
在执行 dispatch 触发 action(commit 同理)的时候,只需传入(type, payload),action 执行函数中第一个参数 store 从哪里获取的?
如何区分 state 是外部直接修改,还是通过 mutation 方法修改的?
vuex 里面可以直接修改 state 的值,为什么还要设置一个 action?
vuex 的设计思路,为什么要用 mutation 修改状态,为什么不能直接修改 state 状态
# vuex 面试题及答案
# 1.你使用过 Vuex 吗?
简介:
Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。每一个 Vuex 应用的核心就是 store(仓库)。“store” 基本上就是一个容器,它包含着你的应用中大部分的状态 ( state )。 (1)Vuex 的状态存储是响应式的。当 Vue 组件从 store 中读取状态的时候,若 store 中的状态发生变化,那么相应的组件也会相应地得到高效更新。 (2)改变 store 中的状态的唯一途径就是显式地提交 (commit) mutation。这样使得我们可以方便地跟踪每一个状态的变化。
主要包括以下几个模块:
State:定义了应用状态的数据结构,可以在这里设置默认的初始状态。
Getter:允许组件从 Store 中获取数据,mapGetters 辅助函数仅仅是将 store 中的 getter 映射到局部计算属性。
Mutation:是唯一更改 store 中状态的方法,且必须是同步函数。
Action:用于提交 mutation,而不是直接变更状态,可以包含任意异步操作。 Module:允许将单一的 Store 拆分为多个 store 且同时保存在单一的状态树中。
# 2.简述 vuex 的工作原理
# 3.store 是怎么注册的?
vuex 在 vue 的生命周期中的初始化钩子前插入一段 Vuex 初始化代码。给 Vue 的实例注入一个 $store 的属性
# 4.mutation,commit 是怎么实现的?
# 5.辅助函数是怎么实现的?
# 6.Mutation 和 Action 区别
- 1、流程顺序
“相应视图—>修改 State”拆分成两部分,视图触发 Action,Action 再触发 Mutation。
- 2、角色定位
基于流程顺序,二者扮演不同的角色。
Mutation:专注于修改 State,理论上是修改 State 的唯一途径。
Action:业务代码、异步请求。
- 3、限制
角色不同,二者有不同的限制。
Mutation:必须同步执行。
Action:可以异步,但不能直接操作 State。