Match-id-0bab5f65150428dd661a5ee7c0828458fcf1e6d6

This commit is contained in:
* 2022-05-11 14:49:46 +08:00 committed by *
parent d73ab8fcb0
commit 978e25be73
1 changed files with 31 additions and 0 deletions

View File

@ -2,6 +2,7 @@ import { travelVNodeTree } from '../renderer/vnode/VNodeUtils';
import { Hook, Reducer, Ref } from '../renderer/hooks/HookType';
import { VNode } from '../renderer/vnode/VNode';
import { launchUpdateFromVNode } from '../renderer/TreeBuilder';
import { DomComponent } from '../renderer/vnode/VNodeTags';
export const helper = {
travelVNodeTree: (rootVNode, fun) => {
@ -41,6 +42,36 @@ export const helper = {
console.error('Target vNode is not a hook vNode: ', vNode);
}
},
getComponentInfo: (vNode: VNode) => {
const { props, state, hooks } = vNode;
const info:any = {};
if (props && Object.keys(props).length !== 0) {
info['Props'] = props;
}
if (state && Object.keys(state).length !== 0) {
info['State'] = state;
}
if (hooks && hooks.length !== 0) {
const logHookInfo: any[] = [];
hooks.forEach((hook) =>{
const state = hook.state as Reducer<any, any>;
if (state.trigger && state.isUseState) {
logHookInfo.push(state.stateValue);
}
});
info['Hooks'] = logHookInfo;
}
travelVNodeTree(vNode, (node: VNode) => {
if (node.tag === DomComponent) {
// 找到组件的第一个dom元素返回它所在父节点的全部子节点
const dom = node.realNode;
info['Nodes'] = dom?.parentNode?.childNodes;
return true;
}
return false;
}, null, vNode, null);
return info;
},
};
function injectUpdater() {