【发布时间】:2021-11-27 02:45:14
【问题描述】:
一直有人告诉我,React 组件应该设计成树状层次结构,以便祖先/父母可以持有状态并将其传递给他们的孩子。
我只是想知道,这是必须的吗?
React 的设计原则是 “React 从一开始就是为逐步采用而设计的,您可以根据需要使用尽可能少或尽可能多的 React。” 我只是想如果我有一个现有的项目,我想在这里和那里分别添加一些 React 组件而不修改大部分现有的 HTML/代码?这些组件还能相互通信吗?
例如,假设我想在现有纯 HTML 页面的不同位置添加两个单独的 React 组件,我真的很喜欢现有的 HTML 是非 Javascript 生成/修改的。这两个组件彼此之间没有任何层次结构。他们仍然可以访问彼此的状态吗?如果一个组件被更新(通过用户点击、AJAX 响应等),该组件是否可以通知另一个组件更新自己或告诉它调用函数?
我还没有尝试过任何事情,但我会想如果我真的要执行上述操作,如果没有其他方法,我会使用全局变量/函数作为最后的手段。但是,我更感兴趣的是学习任何 React 约定/方法/最佳实践来实现上述目标。
【问题讨论】:
-
据我所知,没有任何体面、合理的方法。最好将两者最近的父级重构为 React。
标签: javascript reactjs react-component react-state