javascript React -使用createPortal或appendChild的仅附加行为?

jslywgbw  于 2023-03-28  发布在  Java
关注(0)|答案(1)|浏览(156)

我有大量的元素被一个共同的父元素渲染。当用户采取行动时,一些元素应该被删除,一些额外的元素应该被追加。这样做的“React方式”,父元素有一个数组,拥有所有子元素的状态。在用户点击时,父元素不变地修改数组,瞧... DOM中的新元素。问题是,由于必须比较页面上的每个元素,它通常很慢,即使是元素键和记忆。我一直在与React的diffing算法斗争,以使其有效地工作。理想情况下,这个父组件将只负责追加新的子组件...一旦它们被引导,它们将控制自己的状态。
我刚刚读到了Portals,我想知道ReactDOM. createPortal(<Child />, document.getElementById('myFavoriteDiv'))是否允许这种只附加的行为而不改变任何先前呈现的子对象。我认为实现这一点的非声明性方法是appendChild,但我认为这是不可取的。如果这不像那样工作,你有什么建议?

oaxa6hgo

oaxa6hgo1#

试试这个,看看是否有效。
ReactDOM.createPortal(,document.getElementById('myFavoriteDiv ')!)

相关问题