refactor(router): 优化路由重定向配置与组件初始化逻辑
- 设置默认重定向路由为 '/' - 修复路由实例化后未正确调用 init 方法的问题 - 移除不必要的控制台日志输出 - 调整路由守卫中 next 回调的参数传递方式 - 导出 Router 类时增加空格以符合代码风格 - 更新时间戳组件导入方式并移除冗余初始化调用 - 为定时器管理器添加清理功能的日志提示 - 从 BaseComponent 中移除调试日志并修复定时器返回值处理
This commit is contained in:
@@ -12,8 +12,6 @@ export class BaseComponent {
|
||||
* @param {Function} handler 回调函数
|
||||
*/
|
||||
bindEvent(target, type, handler) {
|
||||
|
||||
console.log('Bind 1111;')
|
||||
// 获取目标元素
|
||||
const ele = typeof target === 'string' ? document.getElementById(target) : target;
|
||||
|
||||
@@ -33,7 +31,7 @@ export class BaseComponent {
|
||||
* @param {number} ms 定时器间隔时间(毫秒)
|
||||
*/
|
||||
setInterval(fn, ms) {
|
||||
this._timerManager.setInterval(fn, ms);
|
||||
return this._timerManager.setInterval(fn, ms);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -42,7 +40,7 @@ export class BaseComponent {
|
||||
* @param {number} ms 定时器间隔时间(毫秒)
|
||||
*/
|
||||
setTimeout(fn, ms) {
|
||||
this._timerManager.setTimeout(fn, ms);
|
||||
return this._timerManager.setTimeout(fn, ms);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -6,6 +6,7 @@ import {Router} from '../modules/Router.js';
|
||||
const config = {
|
||||
routerViewId: 'app',
|
||||
stackPages: false,
|
||||
redirectRoute: '/',
|
||||
routes: [
|
||||
{
|
||||
path: '/',
|
||||
|
||||
@@ -11,8 +11,7 @@ import {
|
||||
} from '../modules/eventHandlers.js';
|
||||
import {updateTimestamp} from './utils/timestampUtils.js';
|
||||
import {timeZoneList} from './const/timezone.js';
|
||||
|
||||
const BaseComponent = window.BaseComponent;
|
||||
import {BaseComponent} from './components/BaseComponet.js';
|
||||
|
||||
// 获取本地时区
|
||||
const localTimeZone = new Intl.DateTimeFormat().resolvedOptions().timeZone;
|
||||
@@ -20,7 +19,6 @@ const localTimeZone = new Intl.DateTimeFormat().resolvedOptions().timeZone;
|
||||
class Timestamp extends BaseComponent {
|
||||
constructor() {
|
||||
super();
|
||||
this.init();
|
||||
// 定义一个全局变量来保存是否显示毫秒
|
||||
this.showMilliseconds = true;
|
||||
// 定义一个全局变量来保存计时器
|
||||
@@ -33,14 +31,13 @@ class Timestamp extends BaseComponent {
|
||||
// 初始化时更新一次时间戳
|
||||
updateTimestamp(currentTimestampValue, this.showMilliseconds);
|
||||
|
||||
this.setInterval(() => updateTimestamp(currentTimestampValue, this.showMilliseconds), 100);
|
||||
this.timestampInterval = this.setInterval(() =>
|
||||
updateTimestamp(currentTimestampValue, this.showMilliseconds),
|
||||
100);
|
||||
|
||||
const timezoneResultSelect = document.getElementById('timezone-result');
|
||||
const timezoneInputSelect = document.getElementById('timezone-input');
|
||||
|
||||
// 获取本地时区在列表中的索引
|
||||
const localTimeZoneIndex = timeZoneList.indexOf(localTimeZone);
|
||||
|
||||
for (let i = 0; i < timeZoneList.length; i++) {
|
||||
if (i === localTimeZoneIndex) {
|
||||
// 默认选中本地时区
|
||||
@@ -68,13 +65,14 @@ class Timestamp extends BaseComponent {
|
||||
'click',
|
||||
() => (this.showMilliseconds = handleToggleUnit(this.showMilliseconds))
|
||||
);
|
||||
|
||||
// 绑定计时器相关按钮事件
|
||||
this.bindEvent('stop-timer-btn', 'click', () => handleStopTimer(this.timestampInterval));
|
||||
// 绑定开始计时器事件
|
||||
this.bindEvent(
|
||||
'start-timer-btn',
|
||||
'click',
|
||||
() => (this.timestampInterval = handleStartTimer(this.timestampInterval, this.showMilliseconds))
|
||||
() =>
|
||||
(this.timestampInterval = handleStartTimer(this.timestampInterval, this.showMilliseconds))
|
||||
);
|
||||
// 绑定时间戳转换按钮事件
|
||||
this.bindEvent('convert-timestamp-to-date-btn', 'click', handleConvertTimestamp);
|
||||
@@ -91,4 +89,4 @@ class Timestamp extends BaseComponent {
|
||||
}
|
||||
}
|
||||
|
||||
window.timestamp = Timestamp;
|
||||
window.timestamp = Timestamp;
|
||||
|
||||
@@ -45,6 +45,7 @@ export class TimerManager {
|
||||
}
|
||||
|
||||
cleanAll() {
|
||||
console.log('cleanAll time or interval');
|
||||
this.timers.forEach((timerId) => {
|
||||
window.clearTimeout(timerId);
|
||||
window.clearInterval(timerId);
|
||||
|
||||
Reference in New Issue
Block a user