Loading...

# 介绍

本项目是掘金小册上的一个课程github 地址,作者水平很高,感觉物超所值。

此系列主要是记录实践过程。

# React 相关技术栈

  • react 全家桶套餐
    • react: 版本在 ^17.0.1
    • react-router
    • react-router-dom
  • redux: 状态管理容器
  • rc-redux-model: 让 redux 使用起来更加方便
  • redux-logger: 控制台看到最新 redux 的数据

# 配置相关技术栈

Babel

当前主流的 JS 编译器,我们可以从官网看到 Babel 和 React JSX 的关系。所以通过 Babel 将我们的 React JSX 转成浏览器所能识别的 JS 语法是有必要的。

Webpack

好评率较高的打包工具,如果说你的应用程序非常小,没有什么静态资源,只需要一个 JS 文件就可以满足需求,这时使用 Webpack 并不是一个好的选择。很明显,我们的简历平台并不符合这种场景。

如果你对 Webpack 还不太了解,建议阅读彩蛋篇 - Webpack 基础介绍与两大利器

我们可能会遇到一些问题:

  • webpack 将我们模块打包好之后,我们手动写一个 html,加载打包好的资源,这没问题,但能自动化的事情,不香吗?不禁思考,能否通过 webpack 来生成 html 页面?
  • build 打包后的 index.html 直接打开即可,但随即带来的问题是:没有热更新,我改一个字母、一句文案,都需要 build 一次才能看到结果,这种开始方式有些原始,怎么办?
  • 环境区分,很多时候我们需要针对不同环境进行不同操作,当配置文件大了之后,里边充斥着大量的三元运算符用户环境判断,属实蛋疼,怎么办?

上述问题业界内较好的解决方案是 html-webpack-pluginwebpack-dev-serverwebpack-merge,同学们可以私下了解它们的工作原理。

TypeScript

小伙伴们是否有过这种体会,奋笔疾书的写下了一段代码,Ctrl+S 保存,Hot 热更新,然后页面白屏。

回头一看,原来 [...Array.from()] 写成了 [...Array.form()] , 诸如此类问题还有许多,Rollbar 平台统计了前端项目中 Top10 的错误类型,排在最前面的就是:

Uncaught TypeError: Cannot read property xxx of undefined

为了在编写代码阶段,就能规避此类低级 Bug 问题,我们引入了 TypeScript。同时采用 eslint + prettier 进行代码风格检查和代码自动格式化,毕竟阿宽有点代码洁癖。

为此,我们相关配置最后的技术栈为:

  • Babel
  • Webpack
  • Eslint
  • Prettier
  • TypeScript
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

jluyeyu 微信支付

微信支付

jluyeyu 支付宝

支付宝