22
22
23
23
* [ React] ( #user-content-学习-react-本身 )
24
24
* [ ` npm ` ] ( #user-content-学习-npm )
25
- * [ JavaScript “bundlers ”] ( #user-content-学习-javascript-打包工具 )
25
+ * [ JavaScript “打包工具 ”] ( #user-content-学习-javascript-打包工具 )
26
26
* [ ES6] ( #user-content-学习-es6 )
27
27
* [ Routing] ( #user-content-学习路由-routing )
28
28
* [ Flux] ( #user-content-学习-flux )
29
- * [ Immutable.js] ( #user-content-学习-immutablejs )
30
- * [ Relay, Falcor 等] ( #user-content-learning-relay-falcor-等 )
31
29
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-等 )
33
39
34
40
## 学习 React 本身
35
41
39
45
40
46
## 学习 ` npm `
41
47
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 的更多内容
43
49
44
50
在 React 生态圈中, 大部分可重用的组件、库和工具遵循 ` CommonJS ` 模块规范, 可通过 ` npm ` 来安装.
45
51
@@ -53,7 +59,7 @@ JavaScript 打包工具包括有 `webpack` 和 `browserify`. 它们都是好的
53
59
54
60
## 学习 ES6
55
61
56
- 在 JSX (你会在 React tutorial 中学习到) 以外, 你可能会注意到 React 例子中一些有趣的语法. 这被称为 ECMAScript6, 是 JavaScript 的最新版本. 由于 ES6 很新, 你可能还没学习到, 浏览器也可能尚未兼容, 但别担心, 你的打包工具会为你自动转换成兼容代码.
62
+ 在 JSX (你会在 React tutorial 中学习到) 以外, 你可能会注意到 React 例子中一些有趣的语法. 这被称为 ECMAScript6, 是 JavaScript 的最新版本. 由于 ES6 很新, 你可能还没学习到, 浏览器也可能尚未兼容, 但别担心, 通过合适的配置, 你的打包工具会为你自动转换成兼容代码.
57
63
58
64
如果你只想要使用 React 来把事情做完, ** 你可以跳过 ES6 的学习,** 或者留到以后再学习.
59
65
@@ -65,6 +71,22 @@ JavaScript 打包工具包括有 `webpack` 和 `browserify`. 它们都是好的
65
71
66
72
** 如果你创建的并非单页面应用, 请不要使用路由.** 无论如何, 大部分项目都是从大型应用中的小组件开始的.
67
73
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
+
68
90
## 学习 Flux
69
91
70
92
你可能听过 Flux, 不过关于 Flux 有大量的错误资讯.
@@ -81,6 +103,6 @@ React 组件之间存在层级关系. 在很多时候, 你的数据模型也跟
81
103
82
104
[ Immutable.js] ( https://facebook.github.io/immutable-js/ ) 提供了一系列的数据结构, 以帮助解决构造 React 应用时的某些性能问题. 这是一个很棒的库, 你可能会在应用发展的过程里大量用到它, 但直到你在意识到性能问题以前, 它是完全不必要的.
83
105
84
- ## Learning Relay, Falcor 等
106
+ ## 学习 Relay, Falcor 等
85
107
86
108
这些技术可以帮你减少 AJAX 请求数, 它们仍然是非常前沿的, 所以如果你没有遇到过多 AJAX 请求的问题, 就不需要用到 Relay 或者 Falcor.
0 commit comments