vuex面试题总结

Vuex 面试题

  1. Vuex中如何异步修改数据

    vuex基本使用流程为:在action中分发异步请求 在异步回调中 使用commit 提交mutationmutation中修改state使用gettersstate的值进行计算封装

  2. 如何在模块中 访问全局内容

    • 若 使用 全局 stategetter rootStaterootGetter 会作为第三和第四参数传入getter 也会通过context对象的属性传入 action

    • 若需要 在全局命名空间内 分发 action 或提交 mutation 将{root:true} 作为第三参数 传给 dispatchcommit 即可

  3. vuex中 划分模块的好处

    • state 更为 容易管理 保证了store完整的状态数 又避免了相互之间的state冲突
    • 命名 操作 state 都变得 扁平 直观
  4. vuex的store特性

    • vuex 就是一个仓库 仓库里放了很多对象 其中state就是数据源存放地
    • state里面存放的数据是 响应式的 vue组件从store读取数据 若是 store中的数据发生改变 依赖这项数据的组件 也会发生更新
    • 通过 mapState 把全局的state 和 getters 映射到当前组件的 computed中
  5. vuex 的 getter 特性是什么

    • 可以对 state 进行计算操作 它就是 store 的计算属性
    • 虽然在组件内也可以做计算属性 但是 getters 可以在多个组件之间复用
    • 如果一个状态只在一个组件内使用 可以不用 getters
  6. vue.js中ajax请求代码应该写在组件的methods还是vuex的actions中

    • 如果请求来的数据 是 不需要被其他组件公用 仅仅在请求的组件内使用 就不需要放入 vuex的 state中
    • 若被其他地方复用 则将请求放入action中 方便复用
  7. actions和mutations的区别

    • mutation 更改 Vuex的store中的状态的唯一方法是 提交 mutation 每个mutation 都有一个 字符串的事件类型 和 一个回调函数 回调函数 就是进行状态更改的地方 且 接受 state 作为 第一个参数

      const store = new Vuex.Store({
        state: {
          count: 1
        },
        mutations: {
          increment (state) {
            // 变更状态
            state.count++
          }
        }
      })
      
    • Action 提交的是mutation 而不是直接变更状态 可以包含异步操作

      const store = new Vuex.Store({
        state: {
          count: 0
        },
        mutations: {
          increment (state) {
            state.count++
          }
        },
        actions: {
          increment (context) {
            context.commit('increment')
          }
        }
      })
      
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值