jhe*_*dus 5 terminology reactjs
在这要点上React.render = (ReactElement, HTMLElement | SVGElement) => ReactComponent;
什么是ReactComponent指什么?一个实例或类?
问原因:我正在尝试创建一个可视化React术语的概念图(如下所示)。
TL; DR React.render返回一个ReactComponent实例
如您所写,React.render接受两个参数。了解它们的含义很重要。这一点令人困惑,所以请忍受我。
1)ReactElement-是一个虚拟的dom实例。有时,此实例映射到本地DOM元素(例如“ div”),有时它映射到ReactComponent实例,例如MyComponent封装其他ReactElements的树。您在这里看到递归吗?
ReactElement -> Tree<ReactComponent returns ReactElement -> Tree<ReactComponent returns ReactElement>>
Run Code Online (Sandbox Code Playgroud)
现在,让我们创建一个虚拟dom实例
const virtualElement = React.createElement('MyComponent');
Run Code Online (Sandbox Code Playgroud)
2)第二个参数是将virtualElement渲染到的本机DOM元素。
基本上,React.render所做的是转换virtualElementin本机DOM元素并将其插入到React.render函数中指定为第二个参数的本机DOM元素中。
结果,React.render返回一个ReactComponent实例(封装的ReactElement树的有状态表示)。
我想您可能会对这种表示法感到有些沮丧,但这很合情理。例如,用Java来考虑它:
function Person getPerson() {
return new Person();
}
Run Code Online (Sandbox Code Playgroud)
可以看到,函数的签名不是指定PersonInstance为返回值,而是指定为返回值Person。
| 归档时间: |
|
| 查看次数: |
4679 次 |
| 最近记录: |