React Node、React Element 和 React Component 之间有什么区别?
主题
React
在GitHub上编辑
TL;DR
React Node 是 React 中的任何可渲染单元,例如元素、字符串、数字或 null
。React Element 是一个描述要渲染内容的不可变对象,使用 JSX 或 React.createElement
创建。React Component 是一个返回 React Element 的函数或类,支持创建可重用的 UI 片段。
React node
一个 React Node 是 React 渲染系统中最基本的单元。它可以是一个 React 元素、一个字符串、一个数字、一个布尔值或 null
。 基本上,任何可以在 React 中渲染的东西都是一个 React Node。
const stringNode = 'Hello, world!';const numberNode = 123;const booleanNode = true;const nullNode = null;const elementNode = <div>Hello, world!</div>;
React element
一个 React Element 是一个不可变的纯对象,表示您希望在屏幕上看到的内容。它包括类型(例如 HTML 标签的字符串或 React 组件)、props 和 children。React 元素是使用 JSX 语法或 React.createElement
创建的。
const element = <div className="greeting">Hello, world!</div>;// 使用 React.createElementconst element = React.createElement('div',{ className: 'greeting' },'Hello, world!',);
React component
一个 React Component 是一个可重用的 UI 片段,它可以接受输入(props)并返回描述 UI 的 React 元素。 有两种类型的组件:函数组件和类组件。
-
函数组件:这些更简单,只是将 props 作为参数并返回 React 元素的函数。
function Welcome(props) {return <h1>Hello, {props.name}</h1>;} -
类组件:这些是扩展
React.Component
的 ES6 类,并且必须具有返回 React 元素的render
方法。class Welcome extends React.Component {render() {return <h1>Hello, {this.props.name}</h1>;}}