connectedCallback 中的自定义 Web 组件设置属性
Custom Web Components setting properties in connectedCallback
我在 Salesforce 堆栈上发布了一个类似的 question,上下文是 Lightning Web 组件(它只是 HTML Web 组件的扩展)。我在这里问是因为我想接触更多的观众。
在他们的文档中,他们说不建议 get/set connectedCallback() 挂钩中自定义组件的属性。这里有谁知道为什么会给出这个建议,因为我专门为 getting/setting 属性使用这个挂钩。
使用 connectedCallback
回调处理程序读取或设置属性没有问题。最初的指导方针与道具可以在 connectedCallback
之后更改这一事实有关,并且只有当组件附加到 DOM 树时才会执行此功能。这意味着您的代码将无法正确处理反应性。
这本身不是技术限制;在处理 Web 组件时,它更像是良好的架构指南。
一般经验法则:
- 一次性使用
connectedCallback
模板之类的东西,设置观察(确保在 disconnectedCallback
中清理观察。
- 使用
getters
和 setters
来管理 属性 观察者。此外,不要在 setter 中处理异步工作流。示例 Promise.then()
等。这样做的原因是为了在 prop 更改时正确处理已经 运行 请求的取消。因此,最好使用 connectedCallback
. 中设置的可观察对象
我在 Salesforce 堆栈上发布了一个类似的 question,上下文是 Lightning Web 组件(它只是 HTML Web 组件的扩展)。我在这里问是因为我想接触更多的观众。
在他们的文档中,他们说不建议 get/set connectedCallback() 挂钩中自定义组件的属性。这里有谁知道为什么会给出这个建议,因为我专门为 getting/setting 属性使用这个挂钩。
使用 connectedCallback
回调处理程序读取或设置属性没有问题。最初的指导方针与道具可以在 connectedCallback
之后更改这一事实有关,并且只有当组件附加到 DOM 树时才会执行此功能。这意味着您的代码将无法正确处理反应性。
这本身不是技术限制;在处理 Web 组件时,它更像是良好的架构指南。
一般经验法则:
- 一次性使用
connectedCallback
模板之类的东西,设置观察(确保在disconnectedCallback
中清理观察。 - 使用
getters
和setters
来管理 属性 观察者。此外,不要在 setter 中处理异步工作流。示例Promise.then()
等。这样做的原因是为了在 prop 更改时正确处理已经 运行 请求的取消。因此,最好使用connectedCallback
. 中设置的可观察对象