面试了许多求职者,很多求职者只知其然,而不知所以然,写此文章为广大前端小伙伴指引迷津。纯干货!纯干货!纯干货!
目录
Vuex
什么是Vuex?
答:专门为Vue应用程序开发的状态管理模式。
为什么要使用Vuex?
答:项目不需要开发大型的单页应用,此时你完全没有必要使用vuex,项目达到了中大型应用的规模,如何更好地在组件外部管理状态,Vuex 将会成为自然而然的选择。
Vuex的组成部分?
答:state、getter、mutation、action、modules、store。
state: vuex的基本数据,用来存储变量。
getter: 从基本数据(state)派生的数据,相当于state的计算属性。
mutation 提交更新数据的方法,必须是同步的(如果需要异步使用action)。
action: 和mutation的功能大致相同,不同之处在于
1. Action 提交的是 mutation,而不是直接变更状态。
2. Action 可以包含任意异步操作。
modules: 模块化vuex,可以让每一个模块拥有自己的state、mutation、action、getters,
使得结构非常清晰,方便管理。
store: 共享仓库。
数据修改流程?
const user = {
state:{
self: null,
token: '',
},
mutations:{
SET_SELF: (state, self) => {
state.self = self
},
SET_TOKEN: (state, token) => {
state.token = token
}
},
actions:{
login ({ commit }, res) {
commit('SET_SELF', res.self)
commit('SET_TOKEN', res.token
}
}
export default user
// 使用下面这两种方法存储数据:
dispatch:异步操作,写法: dispatch(‘mutations方法名’,值)
commit:同步操作,写法:commit(‘mutations方法名’,值)
Vuex页面刷新数据丢失问题解决方法?
答:sessionStorage、vue插件(vuex-along)等。
面试大白话
答:首先,Vuex是专门为Vue应用程序开发的状态管理模式。其主要目的也是为了中大型项目中,更好地在组件外部管理状态。它主要包括几个部分state: vuex的基本数据,用来存储变量。getter: 从基本数(state)派生的数据,相当于state的计算属性。mutation 提交更新数据的方法,必须是同步的(如果需要异步使用action)。action: 和mutation的功能大致相同,不同之处在于1. Action 提交的是mutation,而不是直接变更状态。2. Action 可以包含任意异步操作。modules: 模块化vuex,可以让每一个模块拥有自己的state、mutation、action、getters,使得结构非常清晰,方便管理。我们项目里面一般就是sessionStorage结合Vuex使用,防止页面刷新数据丢失问题。不过Vuex还是结合实际来使用,项目不需要开发大型的单页应用,此时完全没有必要使用vuex。