React 和 Vue 的理解,异同

news/2024/11/25 15:21:37/

相似之处:

  • 都将注意力集中保持在核心库,而将其他功能如路由和全局状态管理交给相关的库;
  • 都有自己的构建工具,能让你得到一个根据最佳实践设置的项目模板;
  • 都使用了 Virtual DOM(虚拟 DOM)提高重绘性能;
  • 都有 props 的概念,允许组件间的数据传递;
  • 都鼓励组件化应用,将应用分拆成一个个功能明确的模块,提高复用性。

不同之处

  •  数据流
    • Vue 默认支持数据双向绑定,
    • React 一直提倡单向数据流
  • 虚拟 DOM
    • Vue2.x 开始引入"Virtual DOM",消除了和React 在这方面的差异,但是在具体的细节还是有各自的特点。 Vue 宣称可以更快地计算出 Virtual DOM 的差异,这是由于它在渲染过程中,会跟踪每一个组件的依赖关系,不需要重新渲染整个组件树。
    • 对于 React 而言,每当应用的状态被改变时,全部子组件都会重新渲染。当然,这可以通过 PureComponent/shouldComponentUpdate这个生命周期方法来进行控制,但 Vue 将此视为默认的优化。
  • 组件化----React 与 Vue 最大的不同是模板的编写。
    • Vue 鼓励写近似常规 HTML 的模板。写起来很接近标准HTML 元素,只是多了一些属性。
    • React 推荐你所有的模板通用 JavaScript 的语法扩展——JSX书写。具体来讲:React 中 render 函数是支持闭包特性的,所以import的组件在 render 中可以直接调用。但是在Vue 中,由于模板中使用的数据都必须挂在 this 上进行一次中转,所以import 一个组件完了之后,还需要在 components 中再声明下。
  • 监听数据变化的实现原理不同
    • Vue 通过 getter/setter 以及一些函数的劫持,能精确知道数据变化,不需要特别的优化就能达到很好的性能
    • React 默 认 是 通 过 比 较 引 用 的 方 式进行的,如果不优化(PureComponent/shouldComponentUpdate)可能导致大量不必要的vDOM 的重新渲染。这是因为 Vue 使用的是可变数据,而React更强调数据的不可变。
  • 高阶组件
    • react 可以通过高阶组件(HOC)来扩展,
    • 而Vue 需要通过mixins来扩展。 高阶组件就是高阶函数,而 React 的组件本身就是纯粹的函数,所以高阶函数对 React 来说易如反掌。相反 Vue.js 使用HTML 模板创建视图组件,这时模板无法有效的编译,因此Vue 不能采用HOC 来实现。
  • 构建工具 两者都有自己的构建工具:
    • React ==> Create React APP Vue ==> vue-cli 7)跨平台
    • React ==> React Native Vue ==> Weex 12. Vue 的优点

http://www.ppmy.cn/news/276698.html

相关文章

Android手机音频采样率,手机音质差?提升音质必备App了解下

在很多人的印象中,手机的音质水平并不高。特别是大多数的安卓机,抛却硬件不说,软件方面也存在一些音频输出的缺陷,例如播放音频时容易发生SRC等等。 不过就算是普通手机,也是可以通过一些APP来提升音质的。手机上有一些值得一试的HiFi APP,一起来看看吧。 海贝音乐 前面提…

手机必备四款提高工作效率APP,每一个都是黑科技!

1.录音转文字助手 一款录音转文字并翻译的APP,适用于会议记录、采访记录。讲座等各种场合,实时分享,记录保存,方便快捷。 2.PDF转换大师 支持多种文件格式转换,PDF文件可以转换为Word、Excel、TXT、HTML等&#xff0…

仙人掌之歌——权力的游戏(4)

技术大培训 周一上午,陈速在工位上有些坐立不安,他也不知道自己在等待着什么。脑子里不可遏止地又想起上周五时,易伟成过来找自己说的那些没头没脑的话。易伟成先是询问直播串的参数细节,因为他要设计播放串加密方案,…

Linux系统的三种挂载方式

在服务器使用过程中,mount挂载几乎是最常用的一种操作了,今天就给大家介绍一下linux文件挂载相关介绍。 介绍: mount是Linux下的一个命令,它可以将分区挂载或挂接到Linux的一个文件夹下,从而将分区和该目录联系起来&am…

Spring AOP 学习(动态代理、JdbcTemplate、Junit)

动态代理 Proxy jdk动态代理,面向接口 cglib 第三方动态代理,面向父类 jdk动态代理 public class Test1 {public static void main(String[] args) {Dinner dinnernew Person("张三");// 通过Porxy动态代理获得一个代理对象,在代理对象中…

一、kafka入门

Kafka入门 为什么要用消息中间件? 异步处理 场景说明:用户注册后,需要发注册邮件和注册短信。传统的做法有两种1.串行的方式;2.并行方式。 串行方式:将注册信息写入数据库成功后,发送注册邮件&#xff…

电子小字典

电子小字典 // author: Folivora Li // copyright: Folivora Li/*24、【3】电子小字典(选做)(查找) [问题描述] 利用键树结构,建立一个微型电子字典。 [基本要求] 实现生词的加入,单词的查找、删除&#x…

C++实现电子词典(简单小程序)

电子词典&#xff1a;输入单词&#xff0c;显示单词的汉语翻译 思路分析&#xff1a;1.定义一个map<word,中文翻译> 对象 的map对象 2.下载英汉翻译文档&#xff0c;一行一行读取文档内信息&#xff0c;单词和中文翻译 3.读文件&#xff1a;获取单词&#xff0c;中文…