在React中遍历虚拟DOM

时间:2020-11-03 08:06:14

标签: javascript reactjs dom

是否有遍历虚拟Dom的方法?我通常只需要一个结构即可让我拥有/看到孩子的父母关系:

FormTitleWrapper: { key: "FormTitleWrapper",
  children: { FormTitle : { key:"FormTitle", parent: { key: "FormTitleWrapper", /* reference back to the parent */ } },
  parent: { key ... }
}

我可以通过递归包装了该组件的所有子组件来构建这样的结构,但这仅适用于文件中的Elements:


// Form.jsx
return(
<BuildTree>
  // will be visible
  <FormTitleWrapper>
     <FormTitle>Title 1</FormTitle>
  </FormTitleWrapper>
  // will not be visible
  <Select>{AllOptions.map(...)}</Select>
  // will not be visible
  <TextInput></TextInput>
</BuildTree>
)

// TextInput.jsx
// none are visible to Form.jsx
return (<Parent><Child></Child></Parent>)

我当时使用的是React元素的props.children,没有找到获取父母/孩子关系的另一种方法。

现在,我看到2种可能的解决方案,其中1种是包装子级,然后每当react加载子级包装时,相应地更新树。这样做的问题是,它需要对组件的每次更新进行区分,以确保树是最新的,并且我不想重新执行已由react完成的任务。

第二个选项是加载香草dom并以这种方式获取孩子/父母关系。我不确定这是否有效,这就是为什么我尝试通过react做第一种方法的原因。

第三个选择是我缺少明显的东西:)

0 个答案:

没有答案