我正在创建一个应将其添加到常规HTML项目中的小组件。希望将其集成到其网站中的开发人员将使用它。他们现在可能没有任何反应,因此他们应该可以将我的组件与普通JS一起使用。
index.html (我的图书馆的使用者)
<script type="text/javascript" src="bundle.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function () {
createHorizontalTable('#table-container');
});
</script>
包装了ReactDOM.render()
的 index.js 。
...
window.createHorizontalTable = function (elementId: string) {
const element = document.querySelector(elementId);
if(!element) throw Error(`could not find element with selector: ${element}`);
ReactDOM.render(<HorizontalTable />, element)
};
到目前为止,太好了。但是,如何在我的反应组件和“外部世界”之间建立通信?我的组件(一个表)使用了用户提供的数据。另外,该数据可能会更改,并且我的组件应该对这些更改做出反应。
我认为一遍又一遍地致电createHorizontalTable()
并不是一个好主意。因此,我考虑使用Events
。但是我如何向呼叫者公开目标呢?