feat(router): 增强路由组件加载逻辑

1. 修改卸载timer、event、script的逻辑
2. 修改加载script的逻辑
This commit is contained in:
雨霖铃
2025-12-14 09:11:52 +08:00
parent 18ea3e0c8b
commit 52f6dcce3d
5 changed files with 63 additions and 50 deletions
+35 -26
View File
@@ -1,32 +1,41 @@
export class EventManager {
constructor() {
this.listeners = [];
}
export class EventManager {
constructor() {
this.listeners = [];
}
add(ele, type, handler, options) {
ele.addEventListener(type, handler, options);
this.listeners.push({ ele, type, handler, options });
}
add(ele, type, handler, options) {
ele.addEventListener(type, handler, options);
this.listeners.push({ele, type, handler, options});
}
remove(ele, type, handler, options) {
ele.removeEventListener(type, handler, options);
this.listeners = this.listeners.filter(
(listener) =>
listener.ele !== ele ||
listener.type !== type ||
listener.handler !== handler ||
listener.options !== options
);
}
remove(ele, type, handler, options) {
ele.removeEventListener(type, handler, options);
this.listeners = this.listeners.filter(
(listener) =>
listener.ele !== ele ||
listener.type !== type ||
listener.handler !== handler ||
listener.options !== options
);
}
removeAll() {
removeAll() {
return new Promise((resolve, reject) => {
this.listeners.onload = () => {
this.listeners.forEach((listener) => {
listener.ele.removeEventListener(
listener.type,
listener.handler,
listener.options
);
listener.ele.removeEventListener(
listener.type,
listener.handler,
listener.options
);
});
this.listeners = [];
}
resolve();
};
this.listeners.onerror = () => {
console.error('unload event error');
reject();
};
this.listeners = [];
});
}
}