React + Ant Design 快速上手

in javascript •  7 years ago 

背景及目标

日常开发过程中,经常需要做一些 Web 管理平台供同事或自己使用。作为一个后台开发前台知识不扎实,很难简单快速做出易用的 Web 应用。但是 React 和 Ant Design 的出现使得这种情况有所改善。

这篇文章提供了一个路线图,供没有太多前台经验的开发快速上手,做出有一些交互的 Web 管理端。重点集中在以下几点:

  • 提供两个学习路径,分别针对「快速上手」和「系统学习」两个场景
  • 提供足够优秀的学习资源,覆盖重点内容
  • 提供一种避开其他不必要的复杂性的方法,比如尽量避开前端构建工具

为什么要用 React + Ant Design?

React 的优点:

  1. 组件化,写一个 UI 组件可以到处用(当然写通用的组件也不容易)
  2. 单向数据流,组件化的基本条件,使用组件跟函数调用一样简单

Ant Design 的优点:

  1. 提供了一堆高质量的 UI 组件,应有尽有

使用 React 要求的背景知识

使用 React 主要要求这些背景知识:

  • JavaScript
  • 前端构建过程
    • 包管理器(Package Manager)
    • 转译器(Transpiler)
    • 构建、打包工具(Bundler)

下面的内容会提供两种学习的途径,一种是「快速上手」,适合简单粗暴地学一点就上手用;另外一种是「系统学习」,适合系统性地了解。

JavaScript

JavaScript 语言有几版:

规范时间支持程度
ECMAScript 3 (ES3)December 1999广泛支持
ECMAScript 5 (ES5)December 2009ES5 Compatibility Table
ECMAScript 6 (ES6) / ECMAScript 2015 (ES2015)June 2015ES6 Compatibility Table
ECMAScript 7 (ES7) / ECMAScript 2016 (ES2016)June 2016ES.Next Compatibility Table

其中比较关键的节点是 ES6 (ES2015),加入了非常多的特性,更容易写 JS 代码的同时也引入了很多复杂度。对于 React 只需要了解 ES6 中的部分特性即可,但是 ES5 及之前的 JS 基础是需要掌握的。

如果你完全没有 JS 经验,那么:

包管理器

前端构建过程主要用到的工具都是 Node.js 编写的。因此你需要知道怎样管理 Node.js 包。

  • 快速上手:Windows 环境下安装部署 npm 及 Yarn
    • 安装 Node.js 及 npm (下载链接
    • 安装 Yarn(下载链接
    • 命令行运行 npm config set registry https://registry.npm.taobao.org,设置淘宝提供的镜像加速访问
    • 检查 HTTP_PROXY HTTPS_PROXY 环境变量设了没
    • 掌握这些命令:
      • 往当前项目安装一个包:yarn add <package_name>
      • 安装当前项目指定的依赖:yarn install
      • package.jsonyarn.lock 都要提交到 SVN
  • 系统学习:查看 npm 及 Yarn 的文档,理解 Yarn 解决了什么问题

转译器

JS 社区标准的转译器叫 Babel,它将高版本的 JS 代码(比如 ES6),转译成低版本的 JS 代码(比如 ES5),以在仍不支持 ES6 的运行环境上(比如老版本的浏览器)运行 JS 代码。

  • 快速上手:不用管它,React 的构建工具帮你搞定了
  • 系统学习:看看它的文档

构建、打包工具

现在最流行的是 webpack。它很复杂。

  • 快速上手:
    • 知道 import 'file.css' 是它的 css-loader 在起作用,并且 import 进来的 CSS / JS 文件最终会被 webpack 打包成一个大的 CSS / JS 文件
    • 其他的不用管它,React 的构建工具帮你搞定了
  • 系统学习:看看它的文档

开发工具

用 JetBrains 家的 WebStorm

学习 React 本身

学习 React 最重要的点在于,理解:

一些关键的难理解的点:

  • 与 Vue.js / Angular 不同,React 没有双向绑定(即 DOM 元素与其数据绑定),而是使用单向数据流。数据往下流通过 props,数据向上浮通过事件
  • JSX 里面可以嵌套 JS 代码。不要把 JSX 理解成一种模板语言,它就是一种可以转译成 JS 的、用来简化书写的代码

学习 Ant Design

用 Ant Design 就跟你之前用 Bootstrap 没什么区别:

  1. 参考 这里 看看怎样把它加到项目来(很可能我已经帮你加好了)
  2. 把它的组件全部 过一遍,大概知道有什么组件可以用
  3. 懂它的布局系统(24 列系统)
  4. 想想你的场景适合什么组件,去相应的地方拷代码用

常见问题和好的实践

JS 写着很不爽啊

JS 太垃圾不方便,但是有个非常好用的 Lodash 库,提供了很多方便的函数,写起来可以很像 Python。如果你也不知道怎么用 Lodash,那么你在 Google 代码例子时,加上 lodash 关键词,比如 "lodash iterate object"。

在代码里使用 Lodash:

  1. yarn add lodash
  2. import _ from 'lodash'

如何找合适的第三方库?

  1. 参考 Ant Design 文档中的 社区精选组件,看看有无适合你的库
  2. Google 相关的关键词,看看相应的库 GitHub 星星数等
  3. Awesome React 里找找

去哪查文档?

JS, React, Lodash 都不熟,经常要看文档怎么办?DevDocs 上这几个文档都有,Enable 之后将内容下载到离线使用,查阅起来就很方便。

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Hi! I am a robot. I just upvoted you! I found similar content that readers might be interested in:
https://zhuanlan.zhihu.com/p/26743523

Congratulations @onlyice! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!