你有写过vuex中store的插件吗?
Vuex 的 store 接受 plugins 选项,这个选项暴露出每次 mutation 的钩子。Vuex 插件就是一个函数,它接收 store 作为唯一参数:
const myPlugin = store => {
// 当 store 初始化后调用
store.subscribe((mutation, state) => {
// 每次 mutation 之后调用
// mutation 的格式为 { type, payload }
});
};
然后像这样使用:
const store = new Vuex.Store({
// ...
plugins: [myPlugin]
});
例子 Vuex 自带一个日志插件用于一般的调试
import createLogger from 'vuex/dist/logger'
const store = new Vuex.Store({
plugins: [createLogger()]
})
你有使用过vuex的module吗?主要是在什么场景下使用?
把状态全部集中在状态树上,非常难以维护。 按模块分成多个module,状态树延伸多个分支,模块的状态内聚,主枝干放全局共享状态
vuex中actions和mutations有什么区别?
mutations可以直接修改state,但只能包含同步操作,同时,只能通过提交commit调用。actions是用来触发mutations的,它无法直接改变state,它可以包含异步操作,它只能通过store.dispatch触发
你觉得vuex有什么缺点
工具都是用来提高工作效率的,如果不能,那就说明工具用的不对。如果您不打算开发大型单页应用,使用 Vuex 可能是繁琐冗余的。比如就几个状态的话 不用比较好
vuex怎么知道state是通过mutation修改还是外部直接修改的?
通过$watch监听mutation的commit函数中_committing是否为true
请求数据是写在组件的methods中还是在vuex的action中?
数据需要在vuex中维护就在actions里面请求,否则在组件内请求。具体情况具体分析。
vuex的state、getter、mutation、action、module特性分别是什么?
state, 状态初始化, 并实施观察
getter, 获取数据用于view或data中使用
mutation: 内部处理state变化
action: 处理外部交互
module: 模块化以上四个
你理解的vuex是什么呢?哪些场景会用到?不用会有问题吗?有哪些特性?
长期维护的项目,因为长期维护的项目不能保证3层组件设计。肯定会有第4层,依次类推项目越来越难维护。从4层调第一层的方法太困难,中间有夹杂着其他的逻辑耦合。所有这个是我用vuex的目的,抽离公共的东西,到vuex方便维护