Match-id-3eb8b4cc0e16ccf9c3931acedad4ed9abe2b52d9
This commit is contained in:
parent
0043761609
commit
580beb2ca6
|
@ -1,13 +1,17 @@
|
||||||
import { travelVNodeTree } from '../../../../libs/horizon/src/renderer/vnode/VNodeUtils';
|
import { travelVNodeTree } from '../../../horizon/src/renderer/vnode/VNodeUtils';
|
||||||
import { VNode } from '../../../../libs/horizon/src/renderer/Types';
|
import { VNode } from '../../../horizon/src/renderer/vnode/VNode';
|
||||||
import { ClassComponent, FunctionComponent } from '../../../../libs/horizon/src/renderer/vnode/VNodeTags';
|
import { ClassComponent, FunctionComponent } from '../../../horizon/src/renderer/vnode/VNodeTags';
|
||||||
|
|
||||||
// 建立双向映射关系,当用户在修改属性值后,可以找到对应的 VNode
|
// 建立双向映射关系,当用户在修改属性值后,可以找到对应的 VNode
|
||||||
const VNodeToIdMap = new Map<VNode, number>();
|
const VNodeToIdMap = new Map<VNode, number>();
|
||||||
const IdToVNodeMap = new Map<number, VNode>();
|
const IdToVNodeMap = new Map<number, VNode>();
|
||||||
|
|
||||||
let uid = 0;
|
let uid = 0;
|
||||||
function generateUid () {
|
function generateUid (vNode: VNode) {
|
||||||
|
const id = VNodeToIdMap.get(vNode);
|
||||||
|
if (id !== undefined) {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
uid++;
|
uid++;
|
||||||
return uid;
|
return uid;
|
||||||
}
|
}
|
||||||
|
@ -33,7 +37,7 @@ function parseTreeRoot(treeRoot: VNode) {
|
||||||
travelVNodeTree(treeRoot, (node: VNode) => {
|
travelVNodeTree(treeRoot, (node: VNode) => {
|
||||||
const tag = node.tag;
|
const tag = node.tag;
|
||||||
if (isUserComponent(tag)) {
|
if (isUserComponent(tag)) {
|
||||||
const id = generateUid();
|
const id = generateUid(node);
|
||||||
result.push(id);
|
result.push(id);
|
||||||
const name = node.type.name;
|
const name = node.type.name;
|
||||||
result.push(name);
|
result.push(name);
|
||||||
|
|
Loading…
Reference in New Issue