Vuex面试题

什么是Vuex?

​ 在Vue中实现集中式状态管理的一个Vue插件,对vue应用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方式,且适用于任意组件间通信。

Vuex解决了什么问题?

解决两个问题。1、多个组件依赖于同一状态时,对于多层嵌套的组件的传参将会非常繁琐;2、来自不同组件的行为需要变更同一状态。以往采用父子组件直接引用或者通过事件来变更和同步状态的多份拷贝。以上的这些模式非常脆弱,通常会导致无法维护的代码。

什么时候用Vuex

当项目遇到以下两种场景时

  • 多个组件依赖于同一状态时。
  • 来自不同组件的行为需要变更同一状态

为什么要用vuex而不是直接使用window下的全局变量

1、因为vuex 的状态是响应式的,而全局变量并不是响应式的。2、全局变量多了会造成命名污染。3、全局变量任意地方都可以修改,无法定位修改源,而vuex可以通过开发者工具追踪状态

Vuex的5个核心属性是什么?

state、getters、mutations、actions、modules 

Vuex中状态储存在哪里,怎么改变它?

存储在state中,改变Vuex中的状态的唯一途径就是通过mutation进行修改。

Vuex中状态是对象时,使用时要注意什么?

因为对象是引用类型,将state的对象复制到新对象,那么改变属性还是会影响原始数据,这样会改变state里面的状态,所以要用深度拷贝到新对象当中

Vuex的状态是对象,给改对象添加新属性会有响应式吗

Vuex后添加的属性是没有响应式的,这点和组件的data一样,所以要么使用$set,要和替换整个对象。同时,删除某个存在的对象,也没有响应式,需要借助Vue.delete(obj,“属性名”)。

怎么在组件中批量使用Vuex的state状态?

使用mapState辅助函数, 利用对象展开运算符将state混入computed对象中

Vuex中要从state派生一些状态出来,且多个组件使用它,该怎么做?

使用getter属性,相当Vue中的计算属性computed。getter可接收两个参数,第一个是当前模块的state,第二个是整个store的getters(可以用来访问其他getter),第三个是整个store的state

        bigSum(state, getters, rootState) {
            console.log
  • 22
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值