feat(smartrouter): Add destroy method to SmartRouter class.
This commit is contained in:
parent
fa8ec78c1c
commit
c74c4e78a6
@ -1,5 +1,11 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## 2024-10-06 - 1.3.0 - feat(smartrouter)
|
||||||
|
Add destroy method to SmartRouter class.
|
||||||
|
|
||||||
|
- Introduced a destroy method to the SmartRouter class for cleaning up event listeners and route references.
|
||||||
|
- Refactored popstate event listener to be removable, improving resource management and preventing memory leaks.
|
||||||
|
|
||||||
## 2024-10-06 - 1.2.1 - fix(core)
|
## 2024-10-06 - 1.2.1 - fix(core)
|
||||||
Ensure stability and performance improvements
|
Ensure stability and performance improvements
|
||||||
|
|
||||||
|
@ -3,6 +3,6 @@
|
|||||||
*/
|
*/
|
||||||
export const commitinfo = {
|
export const commitinfo = {
|
||||||
name: '@push.rocks/smartrouter',
|
name: '@push.rocks/smartrouter',
|
||||||
version: '1.2.1',
|
version: '1.3.0',
|
||||||
description: 'A JavaScript library providing routing capabilities for web applications.'
|
description: 'A JavaScript library providing routing capabilities for web applications.'
|
||||||
}
|
}
|
||||||
|
@ -41,6 +41,11 @@ export class SmartRouter {
|
|||||||
*/
|
*/
|
||||||
private basePath: string;
|
private basePath: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reference to the event listener function for cleanup
|
||||||
|
*/
|
||||||
|
private popstateListener: (event: PopStateEvent) => void;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates an instance of Router.
|
* Creates an instance of Router.
|
||||||
*/
|
*/
|
||||||
@ -53,10 +58,11 @@ export class SmartRouter {
|
|||||||
this.basePath = basePath;
|
this.basePath = basePath;
|
||||||
|
|
||||||
// lets subscribe to route changes
|
// lets subscribe to route changes
|
||||||
window.addEventListener('popstate', (popStateEventArg) => {
|
this.popstateListener = (popStateEventArg) => {
|
||||||
popStateEventArg.preventDefault();
|
popStateEventArg.preventDefault();
|
||||||
this._handleRouteState();
|
this._handleRouteState();
|
||||||
});
|
};
|
||||||
|
window.addEventListener('popstate', this.popstateListener);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -119,4 +125,14 @@ export class SmartRouter {
|
|||||||
} as IRouteInfo); // not waiting here
|
} as IRouteInfo); // not waiting here
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Destroy the router instance, removing all external references
|
||||||
|
*/
|
||||||
|
public destroy() {
|
||||||
|
// Remove the event listener for popstate
|
||||||
|
window.removeEventListener('popstate', this.popstateListener);
|
||||||
|
// Clear all routes
|
||||||
|
this.routes = [];
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user