回首Vue3之状态管理篇(五)

168 阅读1分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

这篇文章我们来讲最后两个Store选项:strictdevtools

Store选项

回首Vue3之状态管理篇(一)提到了StoreVuex4.x中的获取方式,不了解的可以传送门看一下。

strict

使 Vuex store 进入严格模式,在严格模式下,任何 mutation 处理函数以外修改 Vuex state 都会抛出错误。

我们开启严格模式,仅需在创建 store 的时候传入 strict: true,如下:

const store = createStore({
  // ...
  strict: true
})

在严格模式下,无论何时发生了状态变更且不是由 mutation 函数引起的,将会抛出错误。这对项目的维护是有很大作用的,可以让所有的状态变更都能被调试工具跟踪到。

对于这个参数的开启,我们可以通过构建工具来配置这种情况:

const store = createStore({
  // ...
  strict: process.env.NODE_ENV !== 'production'
})

devtools

为某个特定的 Vuex 实例打开或关闭 devtools。对于传入 false 的实例来说 Vuex store 不会订阅到 devtools 插件。对于一个页面中有多个 store 的情况非常有用。

{
  devtools: false
}

一般情况下,一个也没只有一个store,但是如果有多个的时候,这个选项就很有作用。

总结

我们需要注意的是:不要在发布环境下启用严格模式,因为严格模式会深度监测状态树来检测不合规的状态变更,这会造成性能的损失。

想了解更多文章,传送门已开启:回首Vue3目录篇