听说,React.js 很火很流行,出于对新鲜事物的好奇,或是新项目的需求,你决定对 React.js 一探究竟。
你自信满满,觉的 Reac 无非就是一个和 Jquery 一样的 JS 库,作为已经精通 HTML 和 CSS,并且有长达两年的 Jquery 使用经验的你来说,学好 React 不在话下,于是早上 08:00 你斗志昂扬的开始了入门学习...
08:00 am
你迫不及待点开 react 官网的 Getting Started,果不其然,按照教程,只需要在页面的 head 内引入三个 js 文件,就可以顺利的 hello world 了。
写完 hello,world ,你感觉不错,出于对新事物的好奇,你注意到引入的三个 js 文件中,前两个与 react 有关(废话,前两个文件都包含react),这没毛病,可第三个是什么鬼?里面连个 react 的关键字都木有,只有一个叫 babel-core 的东东。
二话不说,直接谷歌,之后你了解到,最后那个 JS 文件是用来转译 JSX 文件的。于是你花了十分钟,大致了解了JSX——它是一种语法糖,允许你在 JS 中直接写 HTML 标签,而这也是React的官方推荐写法。
不过你又注意到,babel 不仅能转译 JSX 文件,还能转译 ES6 到 ES5,并且你对 ES6(下一代js规范) 早有耳闻,很多前端大牛都在用,React 官方也强烈推荐使用ES6进行react开发。你觉的自己要与时俱进,于是你花30分钟掌握ES6/ES2015核心内容(上),看完感觉不错,又花30分钟掌握ES6/ES2015核心内容(下)。看完之后又觉的 ES6 实在是好,又收藏了阮一峰的ECMAScript 6 入门作为工具书,以备不时之需。
10:00 am
两个小时就写了个 hello,world,感觉有点慢,不过好在了解了 JSX 和学习点 ES6,接下来就要加快速度学习React了,你暗暗鼓励自己。
继续学习!看到下一行,一个大大的标题引入眼帘——Using React with npm,这 npm 莫非也是个好东西?不然怎么会大标题推荐使用呢,你觉的不能错过这个知识点,于是你花了一个小时了解了 npm 的相关知识,并且知道了使用 npm , 必须要安装 node ,因为 node 附带 npm,并且 node 可以为你提供一个本地服务器极大方便前端开发。一鼓作气,你又花了一小时简单学习了下 node。
12:00 am
学了一上午,你感觉脑袋有点蒙,是时候吃碗面条犒劳下自己了。
14:00 pm
吃完午饭,睡了个午觉,你精神抖擞,又沏了杯茶,眼角余光无意瞥到网页上一行字:npm 基于 CommonJS 规范,通常必须搭配 Webpack 这样的打包工具才能在前端使用 npm 的各种包。你觉的胸口隐隐有些作痛,这怎么没完没了?!还能不能愉快的学习 React 了??你愤愤不平,可无可奈何,这些技术一环接一环,必须得学,,,于是你花了两个小时,学习了 webpack。
16:00 pm
在学习 webpack 的过程中,你了解到,现在 React 开发,讲究是工程化,模块化,组件化。要抛弃传统的 <script>
的引入方式,这是因为:
- 全局作用域容易造成变量污染和冲突
- 文件只能依照
<script>
顺序载入,没有灵活性 - 在大型应用中,各种资源和版本难以维护
- 必须由开发者自行判断模块之间的依赖关系
基于此,你决定,你要从前端的农耕时代向工业化迈进,顺便把之前学的 es6,npm,webpack串联起来,来一个高大上的前端构建。
说干就干,勤学好搜的你花了两小时不到就比葫芦画瓢的配置了一个集 babel, webpack, react 于一体的小项目,还顺手开启了有热替换功能的开发模式,以及有打包优化压缩的产品模式,瞬间逼格满满。
18:00 pm
折腾了一天,从一个 hello,world 到另一个 hello,world,此时你是否...
虽然忙活了一天,好在你解锁了 React 开发的正确姿势。总的来说,React 的学习曲线是比较陡峭的,涉及知识点较多,对于萌新来说,在对 React 开端构建有个大致了解的前提下,你只需要把精力放在如何开发 React 项目上,优秀的 React 脚手架网上很多,本人也有开源的类似的脚手架,欢迎交流学习 React-Study,所以,你完全没必要浪费大量的时间精力在项目配置上。
结语:
很多朋友初学 React,都会被它复杂庞大的体系搞的晕头转向,一不小心,就会走上一条,从入门到放弃的不归路。
虽然入门不易,但一旦入门,你很难再回去了,你会离不开这种工程化的开发模式。
React 对前端影响可以说是颠覆性的,它引领了前端界的”文艺复兴“,作为局中人,如果你还感到一丝迷茫,那么不妨坐下来,先写个组件压压惊。