是否可以更新已导出模块的值
例如: -Colors.js
module.exports = {
main: {
primaryColor: 'red',
},
buttons: {
backGround: 'blue',
},
}
primaryColor和backGround被使用在几个地方(样式按钮,scss)在我的应用程序。基于某些事件,我想全局地更改primaryColor和backGround,这样它就应用于所有使用它的组件。有什么办法可以做到这一点吗?
这要看情况,但通常是可以的。每次导入模块时每个导入的地方都会得到相同的单个对象。这是由于模块缓存系统。实际上,这使得所有模块都是单例的。
所以每次修改任何文件的值时,所有文件都会得到修改后的值。例如:
colors.main.primaryColor = 'yellow';
它会改变这个值。
但是这个新值是否在你的css/scss中得到更新取决于你如何设置代码来编译sass。如果我们谈论的是javascript,那么是的,值是live并将获得更新。但对于生成的文件,如html, css, json, pdf, xml等,这取决于你什么时候生成这些文件。