我有一个Svelte组件,它在其子组件上执行#each
。但是,在更新所有子级之后,我希望父级调整子级的位置,以使其与他们引用的内容保持一致。 (认为:Google文档中的注释。)在渲染孩子时,孩子不可能知道自己的位置,因为我需要处理重叠部分:如果两个子组件引用了相同的内容,则我需要将它们垂直分布,以便他们是可读的。这需要由父母来处理。是否有处理此类问题的首选方法?我以为子组件可以将其DOM节点注册到父onMount
,而父组件可以放置在其afterUpdate
中。想法?
这里是rough vanilla DOM/JavaScript demo,可以说明我正在尝试做的事情。
答案 0 :(得分:0)
您可以使用数据绑定来代替与父节点共享DOM节点。
“内容”组件可以与父级共享offsetTop
。 “评论组”组件将共享它的height
。
然后,父级将拥有计算每个“注释组”的偏移量所需的数据。
父级需要确定对齐方式应该是垂直居中还是垂直居中(如果先前的“注释组”的高度大于其所引用的内容,则可能需要对齐至垂直居中)
答案 1 :(得分:0)
您是否尝试过使用刻度生命周期方法https://svelte.dev/tutorial/tick