如何替换React组件

时间:2016-09-15 15:22:19

标签: reactjs

我计划建立一个基础应用程序,其中大部分组件可以在以后更换,具体取决于客户的特定需求,而无需触及基本应用程序代码。在React生态系统中实现这一目标的最佳机制是什么?是否有可以更新的注册表,或者与GWT replace-with构造类似的任何其他组件的延迟绑定?谢谢。

更新1: 我的理解是依赖注入允许一个注入静态组件。我要问的问题更多的是关于是否可以实现排序注册表并通过组件注册表项组合应用程序,从而使以后的更新能够指定将解析密钥的组件。 React似乎期望在那里存在静态关系,并且如果可能的话我希望它是动态的。

1 个答案:

答案 0 :(得分:0)

不,没有中央注册表,但创建一个并不太难。有点像(抱歉混合JS语法)

// Registry module
var Component1 = require('component1')
var components = { Component1 }
var replace = function(name, cfn) { components[name] = cfn }

// Render module
var registry = require('registry')
var Component1 = registry.components['Component1']
render...Component1

// Override module
var registry = require('registry')
var Component1override = require('component1override')
registry.replace('Component1', Component1override)

唯一的技巧是确保在Render模块之前加载Override模块。