山海鲸可视化

Extension生命周期

1.基本概念

山海鲸中每一个二次开发文件应该都是一个 JS 的类,如果代码中不显式继承 Extension 类,运行时也会自动隐式继承 Extension。

Extension 类的生命周期函数有 4 个,分别是 init,ready,update 和 destroy。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Button {
init() {
// 这里写入初始化代码
}
ready() {
// 这里写入需要依赖其他组件的初始化代码
}
update() {
// 这里写入每一帧都需要调用的代码 如动画中的位置更新
// 注意不要有太消耗性能的计算
}
destroy() {
// 清理初始化中创建的数组和Map等占用内存较大的变量
}
}
export default Button;

1.1 初始化函数

初始化函数包含 init 方法和 ready 方法,其中初始化代码一般写在 init 里面,但如果初始化时需要依赖其他组件的初始化,则应写在 ready 中,因为 ready 函数是在所有组件的 init 函数都调用完毕之后才会被调用。

1.2 更新函数

update 函数可以用来实现各种动画效果,在鲸孪生的二开中使用较多,画面每渲染一帧时都会被调用一次,这个函数中不宜写过重的计算代码,否则会造成严重的项目卡顿。建议应该在 init 函数中把比较消耗性能的计算都预计算好,直接在 update 函数中进行调用。

1.3 清理函数

如果在初始化或者 update 函数中创建了比较大的数组或其他资源,一定要在 destroy 函数中清空掉,比如将数组的 length 设置成 0 或者调用 map 的 clear 方法等等。

具体生命周期函数的介绍还可以参考 API 文档:

https://www.shanhaibi.com/docs/v1/tx9rigt2ff6e0m1h/