vuex的理解?
vuex的理解? (必问) 讲解
什么是vuex?使⽤vuex能够解决什么问题?
vuex其实就是vue官⽅给我们提供的⼀个状态管理⼯具,通过vuex我
们可以组件之间数据共享的问题
vuex的五⼤核⼼是什么? vuex⼀共有5⼤核⼼,分别是state,⾥⾯保存的是状态,也可以理解为是数组, 接下来是getters,
他们⽤来获取state⾥⾯的状态,并且可以对state的数据进⾏处理之后在返回,有点类似于vue的计算属性, 接下来还有mutations,
他的作⽤主要是⽤来修改state⾥⾯的数据,不过在mutations⾥⾯只能进⾏同步的操作,还有actions,这个actions也可以去改变
state的状态,不过在actions⾥⾯定义的⽅法可以进⾏异步操作,最后⼀个是modules,如果当我们的项⽬⽐较⼤的时候,那么保存
的状态也会增加,如果都写到index.js⽂件⾥⾯,⽂件的内容就会变得特别臃肿,后期难以维护,所以我们可是使⽤modules进⾏模
块化的处理,将多个状态抽离到对应js⽂件⾥⾯,最后在modules进⾏合并,这样后期就⽅便维护了.
在组件⾥⾯如何调⽤五⼤核⼼的属性和⽅法?
,如果我们要获取state⾥⾯的状态,我们可以通过this.
s
t
o
r
e
.
s
t
a
t
e
来
进
行
获
取
如
果
要
调
用
g
e
t
t
e
r
s
里
面
的
方
法
我
们
可
以
通
过
t
h
i
s
.
store.state 来进行获取 如果要调用getters 里面的方法 我们可以通过this.
store.state来进行获取如果要调用getters里面的方法我们可以通过this.store.getters 来进行调用 如果要调用mutations 里面的方法我们需要使用
this.
s
t
o
r
e
.
c
o
m
m
i
t
来
触
发
,
如
果
调
⽤
a
c
t
i
o
n
s
⾥
⾯
的
⽅
法
,
我
们
⼀
般
通
过
t
h
i
s
.
store.commit来触发,如果调⽤actions⾥⾯的⽅法,我们⼀般通过this.
store.commit来触发,如果调⽤actions⾥⾯的⽅法,我们⼀般通过this.store.dispacth来进⾏触发. 除了这种⽅式以外,我们还可以
通过辅助函数的⽅式来进⾏调⽤和触发(mapState, mapMutation,mapAction, mapGetter)
vuex的执⾏机制是什么?
我在项⽬当中如果要改变state的状态,我们⼀般是在组件⾥⾯调⽤this.$store.dispatch⽅式来触发actions⾥⾯的⽅法,在actions
⾥⾯的⽅法通过commit来调⽤mutations⾥⾯定义的⽅法来改变state,同时这也是vuex的执⾏机制
vuex的弊端是什么?怎么解决?
vuex也有⼀些弊端,⽐如浏览器刷新的时候,vuex的数据会丢失,我们⼀般结合本地存储来解决,当我们在mutations⾥⾯改变
state的时候在通过localStorage或者sessionStorage存储到本地,然后在state的状态的属性值那块写⼀个三元表达式,如果本地存
在数据的话则读取本地存储的数据,否则就赋值为null
在项⽬当中我⼀般使⽤vuex会保存⽤户信息和token以及其他的⼀些状态.