【发布时间】:2021-04-10 19:27:22
【问题描述】:
我正在寻找一种不在 lit-html/lit-element 中重用 DOM 元素的方法(是的,我知道,我正在关闭其中一个主要功能)。特定场景是将现有系统移动到 lit-element/lit-html,该系统在某些点嵌入了 trumbowyg WYSIWYG 编辑器。这个编辑器将自己附加到一个在 lit-element 中创建的 <div> 标签并修改它自己的内部 DOM,但当然 lit-html 不知道这已经发生了,所以它经常会重用相同的 <div> 标签而不是创建一个新的。我正在寻找类似于 vue.js 键属性的东西(例如,preventing Vue from aggresively reusing dom-elements)
我觉得lit-html 中的live() 指令应该对此有用,但是它可以防止基于给定属性的重用,即使所有属性都相同,我也想防止重用。谢谢!
【问题讨论】:
-
我认为只要提到的 div 不受任何观察属性的影响,它不应该被重新渲染并保留您手动对其所做的任何更改,如果您可以提供一些最小的复制您的问题,我们可以查看您的情况可能导致重新渲染的原因
-
作为一个关于相互交织的单独问题的说明——将 Popper 与 Bootstrap 一起使用,我发现删除
update(changedProperties)中带有$().popper('destroy')的所有 poppers 很有帮助,然后将它们重新添加到 @ 987654329@ 保持更新时的 DOM 与 lit-html 认为的 DOM 同步。
标签: custom-element lit-element lit-html trumbowyg