Polymer LitElement生命周期:首次渲染之前

Polymer LitElement生命周期:首次渲染之前,polymer,lit-element,Polymer,Lit Element,是否有一种方法可以在组件的属性可用后但在第一次渲染之前执行方法? 我指的是类构造函数和firstUpdated之间的东西。 这听起来很琐碎,也许事实上我遗漏了一些琐碎的东西 创建元素时,通过HTML解析器或例如通过document.createElement调用元素的构造函数 下一个回调是connectedCallback,它在DOM节点连接到文档时调用。此时,您可以访问元素的灯光DOM。在执行您自己的工作之前,请确保调用super.connectedCallback,因为LitElement实

是否有一种方法可以在组件的属性可用后但在第一次渲染之前执行方法? 我指的是类构造函数和firstUpdated之间的东西。
这听起来很琐碎,也许事实上我遗漏了一些琐碎的东西

创建元素时,通过HTML解析器或例如通过document.createElement调用元素的构造函数

下一个回调是connectedCallback,它在DOM节点连接到文档时调用。此时,您可以访问元素的灯光DOM。在执行您自己的工作之前,请确保调用super.connectedCallback,因为LitElement实例在这里有一些工作要做

下一个回调是shouldUpdate,它是一个可选谓词,通知LitElement是否应该运行其呈现周期。例如,如果您有一个观察到的数据属性,并在渲染中对其深层属性进行分解,则此选项非常有用。我发现,最好将这个视为谓词,而不是在其中添加各种各样的生命周期逻辑

之后,调用update和render,然后更新和firstupdate。在渲染中执行副作用通常被认为是一种不好的做法,而真正需要覆盖更新的情况很少

在您的情况下,听起来很像您应该在CONTITED回调中完成您的工作,除非您依赖于LITEn元器件渲染的阴影DOM,在这种情况下,您可能会考虑先更新代码,然后调用Test.RevestUpdate强制第二次更新或更改第一次更新

中的一些观察到的属性。
更多信息:

创建元素时,通过HTML解析器或例如document.createElement调用元素的构造函数

下一个回调是connectedCallback,它在DOM节点连接到文档时调用。此时,您可以访问元素的灯光DOM。在执行您自己的工作之前,请确保调用super.connectedCallback,因为LitElement实例在这里有一些工作要做

下一个回调是shouldUpdate,它是一个可选谓词,通知LitElement是否应该运行其呈现周期。例如,如果您有一个观察到的数据属性,并在渲染中对其深层属性进行分解,则此选项非常有用。我发现,最好将这个视为谓词,而不是在其中添加各种各样的生命周期逻辑

之后,调用update和render,然后更新和firstupdate。在渲染中执行副作用通常被认为是一种不好的做法,而真正需要覆盖更新的情况很少

在您的情况下,听起来很像您应该在CONTITED回调中完成您的工作,除非您依赖于LITEn元器件渲染的阴影DOM,在这种情况下,您可能会考虑先更新代码,然后调用Test.RevestUpdate强制第二次更新或更改第一次更新

中的一些观察到的属性。
更多信息:

您可以在渲染的第一行调用一个方法,并使用一个标志来确保它只运行一次,或者可能需要connectedCallback。但请注意,它也可以在您想要的时候多次调用eshouldupdate。但它将在每次渲染之前调用。因此,设置一个标志以避免重复执行……正如@mishu所提到的,可能connectedCallback最接近您所需要的,但这取决于您希望在该计时上运行什么。您可以在渲染的第一行调用一个方法,并使用一个标志确保它只运行一次,或者connectedCallback是您所需要的。但请注意,它也可以在您想要的时候多次调用eshouldupdate。但它将在每次渲染之前调用。因此,设置一个标志以避免重复执行……正如@mishu所提到的,connectedCallback可能是最接近您所需要的,但它取决于您在该时间运行的确切内容