English
Appearance
在某些组件中,我们会将一些实用的方法或属性暴露到 DOM 上,你可能会在组件加载时调用这些方法。但需要注意的是,你可能需要在组件加载后的下一个微任务才能访问到这些方法或属性。
以 Vue 为例,在组件的onMounted中可能还需要queueMicrotask或Promise.resolve()才能访问到最内层 DOM暴露的方法或属性
onMounted
queueMicrotask
Promise.resolve()
查看下面的示例代码并打开控制台查看输出,可以看到在onMounted我们可以获取到l-popover的方法,但是无法获取l-button的方法,而下个微任务后就都可以访问到了
l-popover
l-button
这是因为onMounted在l-popover和l-button均加载到页面上后就会执行,而自定义元素添加到页面后还需要一个微任务才能完成组件的setup,l-popover由于在外层优先完成了setup,便可以在onMounted中访问到它的方法。
TODO 考虑添加setup事件