/
githubmirror
/
taro
Обзор
Документация
Войти
/
githubmirror
/
taro
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
packages/taro-platform-harmony-cpp/src/runtime/components/utils/DynamicCenter.ts
41 строка
1 KB
ZakaryCode
feat(harmony): 修复部分编译问题
08 апр 2025, 11:41
08 апр 2025, 11:41
22fa14f
Код
Авторство
О чём код?
import { TaroElement } from '@tarojs/runtime' import type { TaroAny } from '@tarojs/runtime' export class DynamicCenter { install (node: TaroElement, parentNode: TaroElement) { if (!parentNode._isCompileMode) return this.bindComponentToNodeWithDFS(node, parentNode._instance) } uninstall (node: TaroElement) { if (!node._isCompileMode || !node._instance) return if (node._attrs?._dynamicID) { node._instance[node._attrs._dynamicID] = new TaroElement('Ignore') } node._instance = null } bindComponentToNodeWithDFS (node: TaroElement, component: TaroAny) { if (!node) return const dynamicID = node._attrs?._dynamicID // dynamicID 只是为了更新到精准的 node node._instance = component node._isCompileMode = true if (dynamicID) { node._isDynamicNode = true component[dynamicID] = node } if (!node.childNodes || !node.childNodes.length) return for (let i = 0; i < node.childNodes.length; i++) { this.bindComponentToNodeWithDFS(node.childNodes[i] as TaroElement, component) } } }