React 中 Element 和 Component
文章类型:React
发布者:hp
发布时间:2025-03-22
(1)Element(元素)
1:定义:
React Element 是一个普通的 JavaScript 对象,用来描述你想要在屏幕上看到的内容
2:属性:
type:可以是字符串(如 'div')或 React 组件(如 MyComponent)
props:传入的属性对象
key:用于标识元素的唯一值
ref:用于访问元素的引用
(2)Component(组件)
1:定义:
Component 是一个可复用的代码块,它可以是一个函数或类,接收一些输入(称为 props)并返回一个 React Element
2:特点:
可以包含状态(state)和生命周期方法
可以处理用户交互和业务逻辑
可以组合其他组件来构建复杂的 UI
Element
// 使用 JSX
const element = <h1>Hello, World</h1>;
// 使用 createElement
const element = React.createElement('h1', null, 'Hello, World');
Component
// 函数组件
function Welcome(props) {
return <h1>Hello, {props.name}</h1>;
}
// 类组件
class Welcome extends React.Component {
render() {
return <h1>Hello, {this.props.name}</h1>;
}
}
Element=>它是一个不可变对象,描述界面的一个快照,一旦创建就不能修改
Component =>接收输入并可以维护内部状态,可以响应生命周期事件,可以处理用户交互
Element:
React 会直接将 Element 转换为 DOM 节点
Element 是静态的,每次更新都会创建新的 Element
Component :
React 会调用组件(函数调用或实例化类)
组件返回的 Element 树会被 React 进一步处理
组件可以多次渲染并产生不同的 Element
1:Element=>转换为 React.createElement() 调用,返回轻量级对象
2:Component=>编译为函数或类,最终通过调用生成 Element 树
1:Element=>静态内容描述、一次性渲染的简单 UI
2:Component=>动态交互逻辑、可复用 UI 模块、状态管理
1:Element 是 Component 的产出物:Component 通过 render 方法生成 Element 树,最终由 React DOM 渲染为真实 DOM
2:性能影响:频繁生成新 Element 可能引发不必要的渲染,而合理设计 Component 结构可优化性能
:3:开发模式:Element 关注“UI 是什么”,Component 关注“UI 如何构建与交互”