Vue2系列-Vuex

167 阅读3分钟

面试了许多求职者,很多求职者只知其然,而不知所以然,写此文章为广大前端小伙伴指引迷津。纯干货!纯干货!纯干货!

目录

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。

小白也是新手面试官,欢迎领导莅临指导工作,提出建议,小白不胜感激,不喜勿喷,点赞收藏随机送程序媛小姐姐一枚哦!!!