vuex面试题
# vuex面试题
# 1.1、Vuex有哪些属性?
state 存储变量
Vuex使用state值
```
this.$store.state.xxx
```
```
辅助函数:mapState
```
以上俩种方式都可以拿到state的值,那么区别是什么?
```
使用this.$store.state.xxx是可以直接修改vuex的state数据的
使用辅助函数的形式,是不可以修改的
```
getters state的计算属性
mutations 提交更新数据的方法
actions 和mutations差不多,他是提交mutations来修改数据,可以包括异步操作
modules 模块化vuex
# 1.2、vuex的响应式处理?
vuex是vue的状态管理工具
vue中可以直接触发methods中的方法,vuex是不可以的。未来处理异步,当触发事件的时候,会通过dispatch来访问actions中的方法,actions中的commit会触发mutations中的方法从而修改state里的值,通过getter把数据更新到视图
Vue.use(vuex),调用install方法,通过applyMixin(vue)在任意组件内执行this.$store就可以访问到store对象。
vuex的state是响应式的,借助的就是vue的data,把state存到vue实例组件的data中
# 1.3、vuex刷新数据会丢失吗?怎么解决?
vuex肯定会重新获取数据,页面也会丢失数据
1.把数据直接保存在浏览器缓存里(cookie localstorage sessionstorage,使用vuex-persistedstate插件)
2.页面刷新的时候,再次请求数据,达到可以动态更新的方法
监听浏览器的刷新书简,在刷新前把数据保存到sessionstorage里,刷新后请求数据,请求到了用vuex,如果没有那就用sessionstorage里的数据
# 1.4 mutations和actions的区别
本质区别:
mutations 必须是同步函数
actions “可以包含”任意异步操作
使用区别:mutations中可以放入函数,actions也可以放入函数,但是一般我们在mutations中放入函数而actions是提交mutations
1
2
3
4
5
2
3
4
5
# 1.5 什么场景用Vuex
共享、方便管理、方便维护、组件传值......
项目:购物车数据,订单数据,用户的登录信息....