Skip to content

Commit 1e43451

Browse files
committed
Merge pull request petehunt#17 from Zhangjd/master
Update README-zh.md
2 parents 33d70ac + 90d489f commit 1e43451

File tree

1 file changed

+29
-7
lines changed

1 file changed

+29
-7
lines changed

README-zh.md

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,20 @@
2222

2323
* [React](#user-content-学习-react-本身)
2424
* [`npm`](#user-content-学习-npm)
25-
* [JavaScript “bundlers](#user-content-学习-javascript-打包工具)
25+
* [JavaScript “打包工具](#user-content-学习-javascript-打包工具)
2626
* [ES6](#user-content-学习-es6)
2727
* [Routing](#user-content-学习路由-routing)
2828
* [Flux](#user-content-学习-flux)
29-
* [Immutable.js](#user-content-学习-immutablejs)
30-
* [Relay, Falcor 等](#user-content-learning-relay-falcor-等)
3129

32-
并且: **你不需要把这些都学完才去使用 React.** 只需要在你遇到问题需要解决的时候, 才进入下一步的学习.
30+
31+
**你不需要把这些都学完才去使用 React.** 只需要在你遇到问题需要解决的时候, 才进入下一步的学习.
32+
33+
另外, 在 React 社区中, 有一些前沿主题是经常被提及到的, 以下的这些主题很有意思, 但也很难弄懂, 所以它们远没有上面的主题流行, **大多数应用也不需要用到这些.**
34+
35+
* [内联样式](#user-content-学习内联样式)
36+
* [服务器端渲染](#user-content-学习服务器端渲染)
37+
* [Immutable.js](#user-content-学习-immutablejs)
38+
* [Relay, Falcor 等](#user-content-学习-relay-falcor-等)
3339

3440
## 学习 React 本身
3541

@@ -39,7 +45,7 @@
3945

4046
## 学习 `npm`
4147

42-
`npm` 是 Node.js 包管理工具, 也是前端工程师和设计师分享 JavaScript 代码最流行的方式. 它包含了名为 `CommonJS` (请 Google 一下 -- 它很重要) 的模块系统, 让你可以安装 JavaScript 写的命令行工具.
48+
`npm` 是 Node.js 包管理工具, 也是前端工程师和设计师分享 JavaScript 代码最流行的方式. 它包含了名为 `CommonJS` 的模块系统, 让你可以安装 JavaScript 写的命令行工具. 作为背景知识, 可以阅读 [这篇文章](http://0fps.net/2013/01/22/commonjs-why-and-how/) 了解 `CommonJS` 对于浏览器的重要性, 阅读 [CommonJS Spec Wiki](http://wiki.commonjs.org/wiki/Introduction) 了解关于 `CommonJS` API 的更多内容
4349

4450
在 React 生态圈中, 大部分可重用的组件、库和工具遵循 `CommonJS` 模块规范, 可通过 `npm` 来安装.
4551

@@ -53,7 +59,7 @@ JavaScript 打包工具包括有 `webpack` 和 `browserify`. 它们都是好的
5359

5460
## 学习 ES6
5561

56-
在 JSX (你会在 React tutorial 中学习到) 以外, 你可能会注意到 React 例子中一些有趣的语法. 这被称为 ECMAScript6, 是 JavaScript 的最新版本. 由于 ES6 很新, 你可能还没学习到, 浏览器也可能尚未兼容, 但别担心, 你的打包工具会为你自动转换成兼容代码.
62+
在 JSX (你会在 React tutorial 中学习到) 以外, 你可能会注意到 React 例子中一些有趣的语法. 这被称为 ECMAScript6, 是 JavaScript 的最新版本. 由于 ES6 很新, 你可能还没学习到, 浏览器也可能尚未兼容, 但别担心, 通过合适的配置, 你的打包工具会为你自动转换成兼容代码.
5763

5864
如果你只想要使用 React 来把事情做完, **你可以跳过 ES6 的学习,** 或者留到以后再学习.
5965

@@ -65,6 +71,22 @@ JavaScript 打包工具包括有 `webpack` 和 `browserify`. 它们都是好的
6571

6672
**如果你创建的并非单页面应用, 请不要使用路由.** 无论如何, 大部分项目都是从大型应用中的小组件开始的.
6773

74+
## 学习内联样式
75+
76+
在 React 出现之前, 很多人通过像 SASS 这样的预处理器来重用复杂的 CSS 样式表. 鉴于 React 使开发可重用组件变得容易, 你的样式表可以变得没那么复杂了. 社区中许多人 (包括我) 正尝试完全抛弃样式表.
77+
78+
由于一些原因, 其实这是个相当疯狂的主意. 这让媒体查询 (media quries) 更加困难了, 而且这种技术可能有性能上的局限性. **当你开始用 React 的时候, 只要用你平常使用的方法去写就好了.**
79+
80+
一旦你找到了用 React 开发的感觉, 你就可以关注那些可作为替代的技术了. 其中一种流行技术是 [BEM](https://en.bem.info/). 我建议你逐渐停用 CSS 预处理器, 因为 React 给了你一种更强大的方式去重用样式 (通过重用组件), 并且 JavaScript 打包工具可以为你生成更高效的样式表 (我曾经[在 OSCON 上发表过关于这个的演讲](https://www.youtube.com/watch?v=VkTCL6Nqm6Y)). 说了这么多, 总之 React 就像其他 JavaScript 库一样, 可以和 CSS 预处理器很好地配合工作.
81+
82+
## 学习服务器端渲染
83+
84+
服务器端渲染经常被称为 "universal" 或 "isomorphic" JS. 这意味着你可以用 React 组件在服务器端渲染出静态 HTML. 这样做可以提高初始化加载的性能, 因为用户不用等到 JS 下载完才看得见初始界面, 并且 React 可以重用服务器端渲染出的 HTML, 无需客户端重新生成.
85+
86+
如果你发现首屏渲染速度过慢, 或者想提高网站在搜索引擎的排行, 你就需要服务器端渲染了. 尽管 Google 现在也会索引客户端渲染的内容, 但截至 2016 年 1 月, 这样做被证实会对排行有负面影响, 这可能是由于客户端渲染的性能问题所造成的.
87+
88+
服务器端渲染还需要许多工具的辅助, 因为显然 React 组件不是在考虑服务器端渲染的情况下写出来的, 你应该先构建你的应用, 之后再关心服务器端渲染的问题. 你不用担心重写所有组件才能支持它.
89+
6890
## 学习 Flux
6991

7092
你可能听过 Flux, 不过关于 Flux 有大量的错误资讯.
@@ -81,6 +103,6 @@ React 组件之间存在层级关系. 在很多时候, 你的数据模型也跟
81103

82104
[Immutable.js](https://facebook.github.io/immutable-js/) 提供了一系列的数据结构, 以帮助解决构造 React 应用时的某些性能问题. 这是一个很棒的库, 你可能会在应用发展的过程里大量用到它, 但直到你在意识到性能问题以前, 它是完全不必要的.
83105

84-
## Learning Relay, Falcor 等
106+
## 学习 Relay, Falcor 等
85107

86108
这些技术可以帮你减少 AJAX 请求数, 它们仍然是非常前沿的, 所以如果你没有遇到过多 AJAX 请求的问题, 就不需要用到 Relay 或者 Falcor.

0 commit comments

Comments
 (0)