From 6df7e376176ca4f00d3051e9eaa21a0160c9d408 Mon Sep 17 00:00:00 2001 From: novlan1 <1576271227@qq.com> Date: Fri, 26 Jun 2026 16:41:46 +0800 Subject: [PATCH 01/11] docs: update tdesign uniapp homepage --- packages/tdesign-uniapp-chat/package.json | 1 + packages/tdesign-uniapp-chat/site/package.json | 2 +- packages/tdesign-uniapp/package.json | 1 + packages/tdesign-uniapp/site/package.json | 2 +- 4 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/tdesign-uniapp-chat/package.json b/packages/tdesign-uniapp-chat/package.json index 6a3d911ad..85e42295f 100644 --- a/packages/tdesign-uniapp-chat/package.json +++ b/packages/tdesign-uniapp-chat/package.json @@ -85,6 +85,7 @@ "url": "git+https://github.com/Tencent/tdesign-miniprogram.git", "directory": "packages/tdesign-uniapp-chat" }, + "homepage": "https://tdesign.tencent.com/uniapp-chat", "publishConfig": { "access": "public", "registry": "https://registry.npmjs.org/" diff --git a/packages/tdesign-uniapp-chat/site/package.json b/packages/tdesign-uniapp-chat/site/package.json index 12becc5ae..51ff37310 100644 --- a/packages/tdesign-uniapp-chat/site/package.json +++ b/packages/tdesign-uniapp-chat/site/package.json @@ -5,7 +5,7 @@ "version": "0.0.1", "description": "site of tdesign-uniapp-chat", "author": "novlan1", - "homepage": "https://tdesign.tencent.com/uniapp/", + "homepage": "https://tdesign.tencent.com/uniapp-chat", "bugs": { "url": "https://github.com/Tencent/tdesign-miniprogram/issues" }, diff --git a/packages/tdesign-uniapp/package.json b/packages/tdesign-uniapp/package.json index 50512548b..d905205ce 100644 --- a/packages/tdesign-uniapp/package.json +++ b/packages/tdesign-uniapp/package.json @@ -28,6 +28,7 @@ "url": "git+https://github.com/Tencent/tdesign-miniprogram.git", "directory": "packages/tdesign-uniapp" }, + "homepage": "https://tdesign.tencent.com/uniapp", "publishConfig": { "access": "public", "registry": "https://registry.npmjs.org/" diff --git a/packages/tdesign-uniapp/site/package.json b/packages/tdesign-uniapp/site/package.json index e1db01b59..625c5c09c 100644 --- a/packages/tdesign-uniapp/site/package.json +++ b/packages/tdesign-uniapp/site/package.json @@ -5,7 +5,7 @@ "version": "0.0.1", "description": "site of tdesign-uniapp", "author": "novlan1", - "homepage": "https://tdesign.tencent.com/uniapp/", + "homepage": "https://tdesign.tencent.com/uniapp", "bugs": { "url": "https://github.com/Tencent/tdesign-miniprogram/issues" }, From a4e0b825c9632fa2565b09db7ceb77a2adb80827 Mon Sep 17 00:00:00 2001 From: novlan1 <1576271227@qq.com> Date: Sat, 27 Jun 2026 15:42:55 +0800 Subject: [PATCH 02/11] =?UTF-8?q?chore:=20=E9=A6=96=E9=A1=B5demo=E4=B8=8D?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E8=BF=94=E5=9B=9E=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/tdesign-uniapp/example/src/pages/home/home.vue | 2 +- packages/uniapp-components/demo-navbar/demo-navbar.vue | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/tdesign-uniapp/example/src/pages/home/home.vue b/packages/tdesign-uniapp/example/src/pages/home/home.vue index 7f54d7778..6d9918d79 100644 --- a/packages/tdesign-uniapp/example/src/pages/home/home.vue +++ b/packages/tdesign-uniapp/example/src/pages/home/home.vue @@ -4,7 +4,7 @@ - + diff --git a/packages/uniapp-components/demo-navbar/demo-navbar.vue b/packages/uniapp-components/demo-navbar/demo-navbar.vue index b439f12b5..c6fe01086 100644 --- a/packages/uniapp-components/demo-navbar/demo-navbar.vue +++ b/packages/uniapp-components/demo-navbar/demo-navbar.vue @@ -3,7 +3,7 @@ Date: Mon, 29 Jun 2026 10:25:51 +0800 Subject: [PATCH 03/11] chore: update docs home text --- .../example/src/pages/home/home.vue | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/packages/tdesign-uniapp/example/src/pages/home/home.vue b/packages/tdesign-uniapp/example/src/pages/home/home.vue index 6d9918d79..15e0eea27 100644 --- a/packages/tdesign-uniapp/example/src/pages/home/home.vue +++ b/packages/tdesign-uniapp/example/src/pages/home/home.vue @@ -31,7 +31,7 @@ 《TDesign组件库服务声明》 - + @@ -80,6 +80,21 @@ export default { debugEnabled: false, }; }, + computed: { + platformDesc() { + let result = '应用'; + + // #ifdef H5 + result = '网站'; + // #endif + + // #ifdef MP + result = '小程序'; + // #endif + + return result; + }, + }, onLoad(options) { const { q, skyline: querySkyline } = options || {}; From c99c1540478ea2e56c7f66eeff430fd84427ecd9 Mon Sep 17 00:00:00 2001 From: novlan1 <1576271227@qq.com> Date: Mon, 29 Jun 2026 12:25:35 +0800 Subject: [PATCH 04/11] =?UTF-8?q?perf:=20=E4=BF=AE=E5=A4=8D=E9=B8=BF?= =?UTF-8?q?=E8=92=99=E4=B8=8Bcount-down=E7=BB=84=E4=BB=B6=E7=9A=84cppcrash?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../count-down/_example/base/index.vue | 2 + .../count-down/_example/count-down.vue | 2 + .../count-down/count-down.vue | 45 +++++++++++++++---- .../popover/_example/popover.vue | 2 +- .../popup/_example/custom-close/index.vue | 2 +- .../popup/_example/popup.vue | 2 +- .../popup/_example/skyline/popup.vue | 2 +- .../uniapp-components/tag/_example/tag.vue | 2 +- 8 files changed, 45 insertions(+), 14 deletions(-) diff --git a/packages/uniapp-components/count-down/_example/base/index.vue b/packages/uniapp-components/count-down/_example/base/index.vue index f807f5637..556411792 100644 --- a/packages/uniapp-components/count-down/_example/base/index.vue +++ b/packages/uniapp-components/count-down/_example/base/index.vue @@ -21,6 +21,7 @@ + 带圆形底 @@ -47,6 +48,7 @@ /> + diff --git a/packages/uniapp-components/count-down/_example/count-down.vue b/packages/uniapp-components/count-down/_example/count-down.vue index 26228252a..0fe8b41b4 100644 --- a/packages/uniapp-components/count-down/_example/count-down.vue +++ b/packages/uniapp-components/count-down/_example/count-down.vue @@ -10,9 +10,11 @@ + + diff --git a/packages/uniapp-components/count-down/count-down.vue b/packages/uniapp-components/count-down/count-down.vue index 24f3e1061..c476f3499 100644 --- a/packages/uniapp-components/count-down/count-down.vue +++ b/packages/uniapp-components/count-down/count-down.vue @@ -55,12 +55,18 @@ export default { prefix, classPrefix: name, timeDataUnit: TimeDataUnit, - timeData: parseTimeData(0), + // 用 Object.freeze 阻断 Vue3 对 timeData 内部 5 个字段的深度响应化, + // 减少鸿蒙 V8 下 Proxy.set 的次数(高频 setTimeout 写 reactive 会触发 GC race -> SIGSEGV) + timeData: Object.freeze(parseTimeData(0)), formattedTime: '0', tools, timeoutId: null, isInitialTime: false, timeRange: [], + // 组件是否已销毁标记(非响应式,仅作为闭包标志使用) + // 用于防止 setTimeout 回调在组件卸载后访问已销毁的 reactive 实例 + // 鸿蒙 (HarmonyOS) 端 V8 在该场景下会触发 SIGSEGV(SEGV_MAPERR) + _destroyed: false, }; }, watch: { @@ -71,8 +77,12 @@ export default { immediate: true, }, }, - mounted() {}, + mounted() { + this._destroyed = false; + }, beforeUnmount() { + this._destroyed = true; + this.counting = false; if (this.timeoutId) { clearTimeout(this.timeoutId); this.timeoutId = null; @@ -92,7 +102,10 @@ export default { pause() { this.counting = false; - this.timeoutId && clearTimeout(this.timeoutId); + if (this.timeoutId) { + clearTimeout(this.timeoutId); + this.timeoutId = null; + } }, reset() { @@ -119,10 +132,14 @@ export default { const { timeText } = parseFormat(remain, format); - const timeRange = format.split(':'); - - this.timeRange = timeRange; - this.timeData = timeData; + // timeRange 仅由 format(prop) 决定,初次或 format 变化时才赋值, + // 避免每帧都写 reactive 数组造成鸿蒙端 V8 GC race。 + if (!this._lastFormat || this._lastFormat !== format) { + this.timeRange = format.split(':'); + this._lastFormat = format; + } + // freeze 一下,禁止 Vue 深度响应化每帧的新对象 + this.timeData = Object.freeze(timeData); this.formattedTime = timeText.replace(/:/g, ' : '); if (remain === 0 && (this.counting || this.isInitialTime)) { @@ -133,7 +150,17 @@ export default { }, doCount() { + // 毫秒模式下从 33ms (≈30fps) 降到 100ms (≈10fps),肉眼仍流畅, + // 但 Proxy.set 频率降低 3 倍,显著降低鸿蒙 V8 GC race 概率。 + let interval = this.millisecond ? 100 : 200; + // #ifdef APP-HARMONY + interval = this.millisecond ? 100 : 500; + // #endif this.timeoutId = setTimeout(() => { + // 组件已销毁,直接返回,避免对已失效的 reactive 实例做 set 操作 + // 修复鸿蒙端因 Vue3 Proxy set 已销毁对象触发 V8 SIGSEGV 崩溃 + if (this._destroyed) return; + const time = this.getTime(); if (this.millisecond) { @@ -142,10 +169,10 @@ export default { this.updateTime(time); } - if (time !== 0) { + if (time !== 0 && !this._destroyed) { this.doCount(); } - }, 33); // 30 帧,因此 1000 / 30 = 33 + }, interval); }, }, }), diff --git a/packages/uniapp-components/popover/_example/popover.vue b/packages/uniapp-components/popover/_example/popover.vue index 3307f580a..e80e62f9b 100644 --- a/packages/uniapp-components/popover/_example/popover.vue +++ b/packages/uniapp-components/popover/_example/popover.vue @@ -2,7 +2,7 @@ - + diff --git a/packages/uniapp-components/popup/_example/custom-close/index.vue b/packages/uniapp-components/popup/_example/custom-close/index.vue index c9ef8ed15..6bed4a87b 100644 --- a/packages/uniapp-components/popup/_example/custom-close/index.vue +++ b/packages/uniapp-components/popup/_example/custom-close/index.vue @@ -11,7 +11,7 @@ size="large" variant="outline" theme="primary" - custom-style="display: block; margin-top: 32rpx" + custom-style="margin-top: 32rpx" @click="handlePopup" > 居中弹出层-带自定义关闭按钮 diff --git a/packages/uniapp-components/popup/_example/popup.vue b/packages/uniapp-components/popup/_example/popup.vue index 5a9b227ef..5ac0c50b4 100644 --- a/packages/uniapp-components/popup/_example/popup.vue +++ b/packages/uniapp-components/popup/_example/popup.vue @@ -6,7 +6,7 @@ desc="由其他控件触发,屏幕滑出或弹出一块自定义内容区域。" notice="渲染框架支持情况:Skyline、WebView" /> - + diff --git a/packages/uniapp-components/popup/_example/skyline/popup.vue b/packages/uniapp-components/popup/_example/skyline/popup.vue index d4e8ada24..c8c1fae07 100644 --- a/packages/uniapp-components/popup/_example/skyline/popup.vue +++ b/packages/uniapp-components/popup/_example/skyline/popup.vue @@ -4,7 +4,7 @@ Popup 弹出层 由其他控件触发,屏幕滑出或弹出一块自定义内容区域。 - + diff --git a/packages/uniapp-components/tag/_example/tag.vue b/packages/uniapp-components/tag/_example/tag.vue index 1b8323ebb..8b2134ef6 100644 --- a/packages/uniapp-components/tag/_example/tag.vue +++ b/packages/uniapp-components/tag/_example/tag.vue @@ -1,7 +1,7 @@