Skip to content

React 和 Vue 的比较 #34

Open
Open
@myLightLin

Description

@myLightLin

React 的特点

  • Facebook 出品,偏运行时的框架
  • 使用 JSX 语法来书写模板
  • 虚拟 DOM
  • 单向数据流
  • 类组件和函数式组件,React Hooks
  • 周边生态丰富,React 全家桶

从学习曲线看,React 需要有完备的 JavaScript (ES6) 基础知识,同时要了解函数式编程的概念,以及学习 React 配套的一系列库才能更好的发挥 React 的优势。

Vue 的特点

  • 尤雨溪 个人开发,目前有个官方团队在维护,运行时 + 编译时的框架
  • 使用类 HTML 模板来描述 UI
  • 虚拟 DOM
  • 响应式系统非常强大
  • 单文件组件, js 逻辑,样式和模板都在同一文件里,还有 Composition API 的加持
  • 轻量,整个 Vuejs 打包后体积非常小,20 几 k 左右

从学习曲线看,Vue 对前端新手来说更友好,直接可以上手开发,语法简单,实现业务功能方便快捷。

React VS Vue

从框架设计层面上看:

  • React 背靠 Facebook 这样的大公司,它的诞生就是提出 UI 开发的新思路,更像是打好了地基,然后引导用户在这基础上去创造延伸出更多玩法。这点从 JSX 语法描述 UI 可以看出,它需要你掌握一定的 JS 基础。
  • Vue 的定位就是尽可能降低前端开发门槛,用户只需掌握基本的 HTML,CSS 和 JavaScript 就可以快速搭建出应用。Vue 在设计上更清晰于「多为用户做些事情」,例如数据改变时,UI 会自动刷新;而在 React 里,你需要手动调用 setState 等 API 来告诉 React 需要重新渲染了。

从数据逻辑层面:
两者都是采用单向数据流,只不过 Vue 在此基础上搞了个 v-model 的语法糖来实现数据双向绑定。Vue 的思路是去拦截数据的读写操作,来实现更好更快地渲染;而 React 推崇函数式,UI = render(data) ,你给一份数据,然后自己调用 API 进行局部刷新。

在逻辑复用层面,这两者都是从 Mixins --> Hoc --> Render props --> Hooks 的过程

React Vue
UI 描述 JSX 类 HTML 的模板语法
数据流 单向 单向 + 数据双绑的语法糖
逻辑复用 Hoc & Render props & Hooks Mixins & Slot & Composition API
渲染更新 虚拟 DOM + dff 基于响应式系统的虚拟 DOM 优化
学习曲线 较高 较低

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions