React 入门教程之八 -- Lifting State Up 提升 state 层级
大多数情况下,不同的 components 之间需要对同一个变化着的 data 进行响应。推荐将这些 shared state 共享的数据提升到它们最近的 parent component 中,下面详细介绍如何实现这一 function。
下面创建一个 temperature calculator 温度计算器来判断在一个给定的温度下,水是否会沸腾。
string(1) "5"
大多数情况下,不同的 components 之间需要对同一个变化着的 data 进行响应。推荐将这些 shared state 共享的数据提升到它们最近的 parent component 中,下面详细介绍如何实现这一 function。
下面创建一个 temperature calculator 温度计算器来判断在一个给定的温度下,水是否会沸腾。
在 JavaScript 中我们通常使用 map method 来对一个 list 的每个元素进行操作:
const numbers = [1, 2, 3, 4, 5];
const double = numbers.map((number) => { return number * 2});
console.log(double)
//output:
//[ 2, 4, 6, 8, 10 ]
在 React 中对一个 list 的元素进行操作方法类似。
在 React 中,我们可以创建独立的 component 来封装特定的功能。因此,可以根据不同的程序的 state 选择性的做部分渲染。
和 JavaScript 的相同,React 中也可以使用 conditions 语法来选择性的渲染内容。如使用 if 或 conditional operator 来根据不同 state 状态创建不同 elements 然后让 React 更新 UI 来匹配 DOM。
处理 React elements events 和处理 DOM elements 很相似,但有一些语法区别:
HMTL 中处理 events 示例如下:
<button onclick="activateLasers()">
Activate Lasers
</button>
React 中示例如下:
<button onClick={activateLasers}>
Activate Lasers
</button>
注意它们的区别之处一个是 event 名称,一个是 handler 定义方式。