反应是否具有“app”的概念,还是仅仅是组件?如何创造全球化的东西?

时间:2015-10-20 04:24:49

标签: reactjs

我对创建mixin / decorator感兴趣,但我不想在使用它的每个组件下声明它,但仍然可以在应用程序中的任何地方使用它。

这是反应中存在的东西吗?我可以创建在整个应用程序的上下文中自动变为可用的标签吗?

analytics / i18n库如何起作用?您是否需要在需要翻译或跟踪的每个文件中导入它们?

这里的初学者。

1 个答案:

答案 0 :(得分:0)

可以在React中使用全局变量 - 就像使用任何其他框架一样 - 但这并不是做事的“反应方式”。相关地,React中“app”的等价物只是顶级的根组件。

不应依赖全局变量,而应该在一个组件文件中使用(1)import / require模块;或者,(2)将所需的函数和值从父组件传递到子组件。

要实现第一种方法,需要一个像Webpack或Browserify这样的捆绑器。因此,例如,如果想要使用像Jed这样的i18n Gettext模块,可以将其实例化并将其导出到一个文件中,然后将importrequire导出到任何组件文件中需要它。

至于第二种方法,可以将道具从父母传递给孩子或使用context。虽然道具需要手动传递,但context总是传递给整个子树。

在上一个示例中,您可以将Jed函数放在context中,但React团队会发出警告:“如果您必须使用上下文,请谨慎使用它,”并再次说,“只是因为在编写清晰代码时最好避免使用全局变量,所以在大多数情况下应避免使用上下文。“

相关问题