- 问:为什么吾辈要使用 React?
- 答:React 拥有更加庞大的生态,以及对 TypeScript 的更好支持。
前者让需求实现变得更加简单,例如目前使用 Vue 做的后台管理系统使用了 Ant Design Vue 这个 UI 库,而它的上游 Ant Design 实际上官方维护的是 React 版本,而 Vue 并不是 亲儿子,导致一些问题并不像官方那么快解决。
后者强大的类型系统能降低维护成本,虽然开发时代码添加类型会稍加工作量,但可以降低维护成本,便于后续的修改、重构,同时 IDE 对其支持是 JavaScript 无法相提并论的。 - 问:那 React 相比于 Vue 而言有什么区别?
-
答:更强大、复杂、酷,对于没有现代前端开发经验的人而言可能非常困难,但一旦熟悉,则会非常喜欢它。组件化(
React Component/JSX
)、函数式(React Hooks
)、不可变(immutable
)都是非常有趣的思想,理解之后确实都能发现具体使用场景。Mobx 将是更简单的。
- 答:作为能够支撑 Facebook 这种级别公司的 Web 产品的基础,显然它拥有相当多的生产环境实践。
使用 create-react-app 创建 react 项目,但和 vue-cli 有一点明显区别:不提供很多配置,只是简单的项目生成。
此处使用 mobx 对标,mobx 是一个状态管理库,以响应式、可变、简单方便为最大卖点。本质上可以认为为每个页面(页面内的所有组件)提供了一个全局对象,并实现了 vue 中的 computed
和 watch
,所以 vue 的作者说 vue 是更简单的 react + mobx 确实有些道理,实际上这两个加起来能做到的事情不比原生
但它们之间也有几点不同
- vue 是基于组件级别自动初始化和销毁,而 mobx 则是手动的
- vue 基于组件但也受限于组件级别,全局状态仍要使用 vuex 这种 大炮,而 mobx 此时则是统一的
是否需要支持 es5?
异步组件和 vue 稍微有点差别,虽然也是需要 import()
语法,但却需要使用高阶组件。