将配置存储在vuex存储中是一种好习惯吗?

时间:2017-11-15 15:30:30

标签: javascript vue.js vuex

将配置存储在vuex中是一种很好的做法吗?

export default {
  state: {
    app: {
      name: 'A project using vuex'
    }
  }
}

3 个答案:

答案 0 :(得分:3)

就个人而言,我只会把东西放到Vuex(或Redux)商店中,这会对用户产生一些影响。来自后端的数据,改变界面的设置/配置等。您应该能够在页面加载时引导您的商店数据,这样如果用户刷新,他们就会完全恢复到原来的位置。

某些配置选项在商店中可能有意义(特别是如果用户可以以某种方式更改它们)。对于大多数事情(例如应用程序名称,应用程序版本等),我通常将它们保存在环境变量中(通过.env文件),并在我的应用程序代码中根据需要读取它们。我没有将它们注入商店,而是选择为它们生成常量,因此如果它们不应该,那么没有风险会改变它们。这有很多好处:

  • 很容易为不同的环境配置不同的配置
  • 在包含敏感数据(例如API凭据)的情况下,很容易将生产配置保留在git之外
  • 此数据存储在清晰,简洁且一致的位置。通过源代码管理,可以很容易地看到数据如何随时间变化
  • 不可能意外地修改一个你没有打算过的状态的变量

答案 1 :(得分:2)

据我所知,在Vuex中存储配置确实没有问题 现在密码和其他敏感信息是另一回事。

我个人将敏感信息存储在.env中:

MONGODB_URI=mongodb://foo:bar@foo.com/foobar
MAILGUN_USER=2342d@34234218b9fd5d4e5dc.mailgun.org
MAILGUN_PASSWORD=4uri62342342

您还可以在js文件中存储和导出其他简单配置:

export default {
  app: [
    name: 'foo',
    path: '../app' 
  ]
}

在全局范围内管理(更改)或访问状态所需的任何内容都可以而且应该在vuex中完成。

答案 2 :(得分:0)

嗯,在某种程度上,它可能是,但它实际上取决于你想要做什么,Vuex不应该首先用于较小的应用程序,但如果你打算制作一个媒介对于大型应用程序,它不仅仅是良好的实践,可以使它更容易,代码更清晰,所以,是的,在某种程度上。