反应字符串常量

时间:2019-01-14 18:52:59

标签: javascript reactjs webpack ecmascript-6

我想将应用程序中的所有字符串抽象到一个集中文件中。我可以执行以下操作:

strings.js:

export const MY_STRING = "foobar";

component.js:

import React, { Component } from "react";
import { MY_STRING } from "strings";

class MyComponent extends Component {
    render() {
        return <div>{MY_STRING}</div>
    }
}

但是,对于大量插值,它似乎可能在运行时变慢。有没有一种方法可以在构建时通过webpack添加这些字符串以避免插值?

1 个答案:

答案 0 :(得分:2)

使用Webpack Define插件:

new webpack.DefinePlugin({
  SOME_VARIABLE: "Hello World",
});

但是,老实说,仅拥有strings.js文件并没有什么害处,这将使您的应用程序变得无限容易地推理。另外,一旦开始获取更复杂的字符串或进行字符串模板化,则必须在运行时完成,因此无论如何您最终都会得到strings.js。在Webpack配置和strings.js之间分割字符串不是一件有趣的事。