“React初学者教程”的版本间的差异
(→用来创建真正可组合 UI 的 API) |
(→创建第一个 React 应用) |
||
第24行: | 第24行: | ||
==创建第一个 React 应用== | ==创建第一个 React 应用== | ||
+ | |||
+ | React 的学习曲线相当陡峭,里面大大小小的障碍不少。 | ||
+ | |||
+ | ===处理 JSX=== | ||
+ | |||
+ | 除了标准的 HTML、CSS 和 JavaScript 外,很多 React 代码都会用 JSX 编写。JSX 是一门可以让我们很容易混合 JavaScript 和 类似 HTML 的标记,来定义用户界面元素以及其功能的语言。这听起来很酷,但是问题是:浏览器是不知道如何处理 JSX的。 | ||
+ | |||
+ | 要用 React 创建 Web 应用,我们需要一种方式采用 JSX,并将它转换为浏览器可以理解的标准 JavaScript,如果不这么做,React 应用就无法运行。目前将 JSX 转换为 JavaScript 有两种解决方案: | ||
+ | |||
+ | * 围绕 Node 以及一些构建工具(比如 Webpack)来设置开发环境。 | ||
+ | * 让浏览器在运行时自动将 JSX 转换为 JavaScript。 | ||
+ | |||
+ | 在 React 入门阶段,我们打算用第二种方案。那么为什么我们不一直用第二种方案呢?原因是,浏览器每次要花时间把 JSX 翻译为 JS,这对性能是有影响的。在学习如何使用 React 时,这是完全可以接受的,但是在部署应用程序实际使用时,这肯定是完全不能接受的。所以后面我们会在已经熟悉了 React 后,再用第一解决方案,即设置开发环境。 | ||
==React 中的组件== | ==React 中的组件== |
2017年10月27日 (五) 07:17的版本
目录
React 简介
老式的多页设计
如果你几年前做过这种应用程序,可能会采用包含多个单页面的方式。
在多页设计方式下,对于大多数改变页面显示的行为,Web 应用会导航到一个完全不同的页面。用户会看到原页面被销毁,然后出来一个新页面,这种用户体验很不尽人意。
新派的单页应用
现代的应用程序趋向于采用一种称为单页应用(SPA)的模式。这种模式下,我们不需要导航到不同的页面,甚至不需要重新加载一个页面。应用的不同视图被加载和卸载到同一页面上。
用来创建真正可组合 UI 的 API
React 鼓励我们将视觉元素分为更小的组件,而不是一整大块。
http://www.w3cplus.com/sites/default/files/blogs/2016/1611/react_components_composable_72.png
完全在 JavaScript 中定义 UI
虽然这听起来有点不可理喻,(我们知道,在 Web 标准年代,崇尚的是结构、表现形式和行为分离,也就是 UI 的结构、表现形式和行为部分分别分离到 HTML、CSS 和 JavaScript 三个文件中。完全在 JavaScript 中定义 UI,岂不是跟 Web 标准背道而驰么?)。但是且听我说完。如果像过去一样采用 HTML 模板的方式定义 UI,除了古怪的语法外,还有另一个主要问题。在模板中,除了只是显示数据,我们被限制做很多事情。例如,如果你想根据特定条件,选择显示哪一块 UI,就不得不在应用中到处写 JavaScript,或者用一些古怪的框架特有的模板语法,才能让它起作用。
而 React 实现的方式就很优雅。UI 完全在 JavaScript 中定义,我们可以利用 JavaScript 提供的强大功能在模板内做各种事情。我们受到的限制只是 JavaScript 支持不支持,而不是模板框架的限制。
创建第一个 React 应用
React 的学习曲线相当陡峭,里面大大小小的障碍不少。
处理 JSX
除了标准的 HTML、CSS 和 JavaScript 外,很多 React 代码都会用 JSX 编写。JSX 是一门可以让我们很容易混合 JavaScript 和 类似 HTML 的标记,来定义用户界面元素以及其功能的语言。这听起来很酷,但是问题是:浏览器是不知道如何处理 JSX的。
要用 React 创建 Web 应用,我们需要一种方式采用 JSX,并将它转换为浏览器可以理解的标准 JavaScript,如果不这么做,React 应用就无法运行。目前将 JSX 转换为 JavaScript 有两种解决方案:
- 围绕 Node 以及一些构建工具(比如 Webpack)来设置开发环境。
- 让浏览器在运行时自动将 JSX 转换为 JavaScript。
在 React 入门阶段,我们打算用第二种方案。那么为什么我们不一直用第二种方案呢?原因是,浏览器每次要花时间把 JSX 翻译为 JS,这对性能是有影响的。在学习如何使用 React 时,这是完全可以接受的,但是在部署应用程序实际使用时,这肯定是完全不能接受的。所以后面我们会在已经熟悉了 React 后,再用第一解决方案,即设置开发环境。