Reactjs 什么';React组件和React元素之间的关系是什么?
我正在读一本使用以下词汇表的书,但我无法理解它们之间的关系:Reactjs 什么';React组件和React元素之间的关系是什么?,reactjs,react-dom,virtual-dom,Reactjs,React Dom,Virtual Dom,我正在读一本使用以下词汇表的书,但我无法理解它们之间的关系: 组件 组件的实例 组件的支持实例 虚拟DOM元素 Areactive元素 它们是否相关以及如何相关?虚拟dom元素是表示dom节点的javascript对象,用于更好地重新排序/差异化/创建支持,而不是在每次状态更改时更新dom ReactElement是一个简单的javascript对象,表示UI的可视部分。可以是html元素或其他react组件。 此javascript对象将与一个或多个虚拟DOM元素关联。这是为了表现 组件
- 组件
- 组件的实例
- 组件的支持实例
- 虚拟DOM元素
- A
reactive元素
它们是否相关以及如何相关?虚拟dom元素是表示dom节点的javascript对象,用于更好地重新排序/差异化/创建支持,而不是在每次状态更改时更新dom ReactElement是一个简单的javascript对象,表示UI的可视部分。可以是html元素或其他react组件。 此javascript对象将与一个或多个虚拟DOM元素关联。这是为了表现 组件 据文件说是的 包含渲染方法的规范对象 我想补充一点: 用于创建、组合和包装具有行为的元素 这些行为可以是:
- 绑定数据
- 函数可以绑定到DOM事件
- 组件的扩展/继承支持
- react的生命周期支持
- javascript流控制(隐藏/显示多个组件)
- 列表:保存杂货元素
- 列表项目:蜂蜜
- 列表项目:牛奶
- 清单项目:谷物
- 清单项目:水果
注意:当我说bind/bound时,我的意思是单向的。一些概念已经解释了,谢谢@eenagy的文章,它确实有助于解释很多概念。从这篇文章来看,(普通)DOM似乎是一个包含HTML元素的树,React版本的虚拟DOM是一个包含React元素的树。但我认为这篇文章在支持实例方面是错误的。它说“
ReactDOM.render()
返回一个React组件实例”,但在文档中它说“ReactDOM.render()
返回对组件的支持实例的引用”,本文后面还指出了这种不一致性。