React 类组件
所有 React 网站都由组件构成,本课程概述了如何创建一个基本的 React 组件。
什么是组件?
组件就是构成网站外观的基本构建块。例如,Facebook 的点赞按钮就是一个组件。让我们尝试编写一个组件。
No configuration found for ID: e5033c7b88cab5118c43850c680fb8c5701c7272ab567cdd6f2e909ee6e531ee
解释:
index.js 文件的第 1 行导入了 React 库;这使得你可以使用 React 的所有功能和特性。如果你对这部分内容不熟悉,可以回顾一下 模块化 章节的内容。
app.js 文件的第 3 行创建了一个默认导出的 App 类,该类继承自 React.Component。如果这些概念不清楚,建议重新学习 类继承 这一课。
第 4 行是 render() 方法。它负责将内容渲染到屏幕上。因此,在 React 类组件中,render() 方法是必需的:因为从导入的 React 包中继承的 React Component 要求你使用它来在浏览器中显示内容。此外,如果不继承自 React.Component,你就无法使用其他 生命周期方法,比如 componentDidMount()。这是因为组件将只是一个普通的 JavaScript 类实例,而不是 React 组件。不仅如此,React 的状态管理方法,如 this.setState() 也将不可用。
目前,屏幕上会显示简单的文字:“This is a component”。要真正使用你的组件,只需在 index.js 文件的第 8 行以标签形式写上组件名称即可——没错,这就像 HTML!这使得组件可以在网站的任何地方重复使用。
不过,正如你所见,使用 JavaScript 类有助于扩展通用类并添加自定义行为。因此,你可以定义自己的类方法或属性。例如,在下面的例子中,我们在 app.js 文件的第 4 行添加了一个 getGreeting() 方法,并在第 11 行通过 this 关键字调用它进行渲染。同时请注意,render() 函数只能返回 一个 JSX/HTML 元素,通常是 <div> ... </div>。所有内容都必须嵌套在这个元素内部。如果你尝试返回多个元素,将会报错。
No configuration found for ID: 9313bad4a1fdec66a159e7386b48f339b8dce397aca4fce5ca6a03811a20a41a
在组件中使用组件
React 允许你在其他组件中使用自定义组件。例如,在下面的例子中,OtherApp 组件被用在 App 组件中(app.js 文件的第 8 行)。通过这种方式,你可以轻松地构建复杂且相对无错误的组件。另外,请注意:所有 React 组件的名称必须以大写字母开头。
No configuration found for ID: 9f07a8d53824d17e89e886373ede97763f54e4afcf18dc0d7d4560cc8bc6fb23
注意事项
虽然 JavaScript 类支持继承,但在 React 中并不推荐这样做,因为 React 更倾向于组合而非继承。因此,你为 React 组件所继承的唯一类应该是官方的 React.Component。
在下一节课中,我们将学习如何使用 React 的 Props 让组件更加可配置。