Ps: 根据个人经验总结 有些结论可能并不客观
React
- 单向数据流 声明式视图
- 官方提供的 API 较为简单 大多数功能交给开源社区扩展 例如 Redux / React-Router 等 但是 React 的社区确实很强大
- CSS 样式文件与组件文件分离(Ps: 现在借助 styled-components 也可以将样式和组件写在同一文件了 )
- 实现表单以及表单验证时的写法较为繁琐
- 父子组件通信 Props Down 只能向下单向传递
- 推崇 JSX 语法 也就是 CSS HTML 全都写在 JSX 中
- React-Router 不支持钩子函数 需要自己实现
- React-Router 需要通过自己去解析获得 Query / Hash 参数
Vue
- 数据双向绑定
- 核心团队统一维护较为全面的 API
- 支持单文件组件 CSS / HTML / Javascript 都可以写在同一文件中 个人比较喜欢 Vue 提供的
scoped
样式特性
相较于 React 借助 PostCSS 的 Style In CSS 写法感觉更简明一点
- 由于双向绑定的存在 可以更方便的实现表单以及表单验证功能
- 父子组件通信 Props Down / Events Up 可以双向通信
- 虽然都在单文件组件中 但是 CSS / HTML / Javascript 都是分开写的
- Vue-Router 支持钩子函数 用起来很方便
- Vue-Router 可以直接通过
this.$route.query
或 this.$route.hash
获得 Query / Hash 参数