前端入门

268 阅读4分钟

1. 语言&环境

1.1 基本的 HTML / CSS 认知

HTML 是页面的结构,简单学一学,知道如何划分页面结构就可。
CSS 是页面元素的外观,用于美化用户界面。 (css-tricks.com/) 是个不错的学习资源。

1.2 JavaScript → TypeScript

JS 运行在页面上的处理用户交互的脚本语言。(zh.javascript.info/)
TS 是 JS 超集,带有类型定义,项目做大了之后,使用 TS 更加安全。(www.typescriptlang.org/)

1.3 Nodejs

后端 Javascript 的运行环境,现代前端开发所需要的一系列工具链(构建、测试),都依赖 Nodejs。(nodejs.org/zh-cn/)

2. 框架

2.1 react (zh-hans.reactjs.org/)

react 是用于构建视图层的 JavaScript 库。核心是组件化的状态、声明周期管理并输出视图描述对象——JSX,并通过实现渲染器对接视图层。react 很容易上手,你可以将 HTML、CSS、JS 都写在同一个组件里面、并通过组合的方式复用组件。
react v16.8 出现了 Hook,用在函数组件中用于调用 react 内部组件的状态和生命周期方法,为逻辑注入复用提供了新的方法(函数组件的地位一下子就超过类组件了)。
react 本身并没有很强大的功能,所以需要使用一些第三方组件来完成其他的事情。比如:

  1. 路由 react-router,要实现 SPA 应用,需要有路由管理、跳转
  2. 状态管理与数据流 redux、mobx、rxjs,组件通信能力有限,如果状态通信很多很复杂(或者需要统一监控、调试状态),你需要它们。
  3. hooks 工具 react-use,内含各种状态、生命周期的封装 Hooks,还有其它 DOM 相关的工具 Hooks,用起来就很棒。

2.2 vue、angular……

没有实际在项目中用过。vue 也是不错的视图框架,利用对象属性访问劫持来实现视图更新,并内置了路由、状态管理等模块。angular 是比较工程化的解决方案了,使用 rxjs 作为基础能力,其 DI 功能可以学习借鉴。
整体而言,react 在社区的欢迎度最高,生态也足够庞大。

2.3 Next.js / umi

Next.js 是 react 框架,零配置即可获得许多开箱即用的功能(约定式路由、SSR)。(nextjs.org/)
umi 是蚂蚁的 react 框架,与 Next.js 相似,更加贴近业务使用。(umijs.org/zh-CN/docs)

3. 工具

3.1 lodash / lodash-es

JS 语言缺少对基本数据结构操作的原生支持(原生API比较弱,一些极端场景还不符合正常预期)。lodash 是每个前端都值得拥有并熟练掌握的基本工具库是对 JS 基本数据结构操作的增强,如果工作中有很多数据处理,那么使用 lodash 可以提升几倍的编码效率。lodash 工具方法很多,增加的库体积也很多(gzip 20kB),因此有 babel/webpack 插件用于去除不用的部分,lodash-es 是其 es module 版本,也是按需使用的。但是 lodash 的优势在于其链式调用的 API(而按需引入将失去这一功能),如果项目体积大到可以无视这 20kB 也可以考虑全量引入。(lodash.com/)

3.2 rxjs

Promise、async/await 语法是用于处理异步而出现的基本数据结构和程序结构。但是它们也仅仅适用于一次性的异步处理逻辑。而 rxjs 可以帮助前端开发处理更复杂的异步数据流,它是面向流的,并使用各种操作符来完成流的处理(过滤、合并、拆分、转换、限流 ……)。(rxjs.dev/guide/overv…)

3.3 dayjs / date-fns

dayjs 保留了 moment 的 API,封装了 Date 对象,是一种面向对象的语法,不同于 moment,它的对象方法不改变对象而是返回新的日期对象(更加安全不易出错),实现上也更加轻量。
date-fns 提供了一系列的工具函数来操作原生的 Date 对象。(date-fns.org/)

3.4 animejs

animejs 是一个动画库,仅靠设置操作对象、属性目标值、时长、曲线就可以实现很多很棒的动画效果。(animejs.com/)

3.5 axios

ajax 库,对基本的 XMLHTTPRequest 的封装,默认使用传输 json 格式,可以很方便地添加通用的拦截器做一些统一操作。(github.com/axios/axios)

4. 组件库

4.1 antd

蚂蚁的 UI 组件库。中后台用的很多。 (ant.design/docs/react/…)

4.2 material-ui

世界范围内流行度最高的 react 组件库,mobile first,具有很强的定制化能力,样式系统方案也很成熟(各种意义上算是组件库的最佳实践了,比起 antd 要强很多)。(material-ui.com/zh/)

4.3 echarts 图表库

广泛使用的图表库。(echarts.apache.org/examples/zh…)