typescript - 检测组件何时取消/附加到 DOM
问题描述
我正在从 React 迁移到hyperHTML,因为性能很重要。我正在使用专门用于停靠面板管理的第三方库我正在使用专门用于PhosphorJS。当我创建这个“DockPanel”类时,我需要将它附加到真正的 DOM 树上。
在React
这可以用函数解决componentDidMount
虚拟节点连接到 DOM 树后立即调用)。
所以我的问题是,有没有办法检测组件何时“安装”和“卸载”?我看到HyperElement
有这个dis/connectedCallback
功能,但在hyper.Components
不起作用。
谢谢!
解决方案
如文档中所述,hyperHTML.Component
具有onconnected和ondisconnected机制。
class Clock extends hyper.Component {
get defaultState() { return {date: new Date()}; }
onconnected() {
console.log('finally live');
}
render() {
return this.html`
<div onconnected=${this} >
<h1>Hello, world!</h1>
<h2>It is ${
this.state.date.toLocaleTimeString()
}.</h2>
</div>`;
}
}
我不熟悉 PhosphorJS(我第一次听说),但如果它基于常规 DOM 节点,你应该没问题。
推荐阅读
- opengl - rhel 7.1 octave gnuplot - 解决 libGL 错误:加载驱动程序失败:swrast
- java - 如何在 Android 应用程序中打开 Youtube 视频链接?(无需调用Youtube APP)
- git - 添加新存储时如何保持 Git 存储索引不变
- json - 如何在 Robot Framework 中编辑 json 字典
- javascript - d3 投影 geoMercator 不返回
- python - 工厂调用备用构造函数(类方法)
- symfony - 未调用身份验证事件
- mysql - 如果可能,编写单个 SQL 查询?
- php - 更改 Wordpress 主菜单链接上的悬停颜色
- python-3.x - 索引错误 - 对于文件中的行:line.split 为 [1] 和 [2]