Vuex 模块初始化最佳实践

Jim*_* B. 6 vue.js vuex vuex-modules

(更新了额外的背景)

我有一个 Vuex 存储模块,它需要在开始时自动加载其数据,因此在请求时可用(在这种情况下,它是一个“设置”存储,在启动时从电子设置加载数据,但有很多为什么我可能需要这样的东西)。

现在,我通过在我的 store 模块上设置一个特殊的“init”操作并从“mounted”生命周期钩子上的 Main.vue 组件分派它来实现这一点,如下所示:

mounted() {
    this.$store.dispatch('initSettings');
}
Run Code Online (Sandbox Code Playgroud)

我希望的是模块可以简单地初始化自己的方式。理想情况下,类似于我的组件上的“挂载”钩子的生命周期钩子之类的东西,但在 vuex 商店模块内触发。这样我的模块的用户就不需要知道他们必须调用 'init' 以及实例化它。

我搜索了文档并没有找到解决方案,但如果我只是在寻找错误的东西,我希望有人找到了一种优雅的方法来做到这一点。

Ori*_*itK -2

我需要类似的东西,我的解决方案是在加载文档时运行:

var app_store = new Vuex.Store({
  state: state,
  getters: getters,
  mutations: mutations,
  actions: actions,  	
});

$(document).ready(function()
{  
  app_store.dispatch("initSettings",null); 
});
Run Code Online (Sandbox Code Playgroud)

  • 虽然问题确实是“有没有更好的方法”,但答案似乎是否定的,因此将其标记为正确答案以保持整洁。 (2认同)