React与Vue对比

news/2024/7/10 0:29:03 标签: react, vue

1、组件化方面

模块化:是从代码的角度来进行分析的,即把一些课复用的代码,抽离未单个模块,便于项目的维护和开发。

组件化:是从UI界面的角度来进行分析的,即把一些可复用的UI元素,抽离为单独的组件。

组件化的好处:项目规模增大,组件会增多,组件化开发就可以很方便的将现有组件拼接成一个完整的页面。

Vue中的组件化:通过 .vue 文件来创建对应组件

​ .vue模板文件中的内容:

  • template 结构(内容)
  • script 行为
  • style 样式

React实现组件化:React没有模板文件,都以JS表现

2、移动APP开发体验方面

Vue主要使用Weex进行移动端开发

React主要使用React Native进行移动端开发

3、监听数据变化的实现原理不同

Vue通过 getter/setter 以及一些函数的劫持知道数据的变化

React通过diff算法进行

4、数据流不同

Vue和React都是单向数据流传递

Vue采用双向绑定:利用MVVM框架实现,view和model虽然不能直接通信,但可以利用viewmodel中间件。

  • 父组件使用 props 将值传递给子组件后,子组件通过 $emit事件通知父组件修改,也存在 v-model,主要是使用 v-bindv-on 的语法糖实现

React是单向绑定的,虽然model和view也是通过viewmodel来处理的,但需要 setState 手动刷新渲染view。

5、组件的通信

vue

  • 父元素——>子元素 :通过 props
  • 子元素——>父元素 :通过 $emit
  • provide/inject

React中

  • 父元素——>子元素 :通过 props 传递数据或回调函数
  • 利用 context 实现跨层级的通信

6、模板渲染方式的不同

Vue通过扩展的HTML语法进行渲染,主要使用指令;

React通过JSX进行,主要使用原生Javascript进行

7、渲染过程不同

Vue通过跟踪组件间的依赖关系进行

React通过计算新旧两颗虚拟DOM树之间的差异,将新的DOM整个插入


http://www.niftyadmin.cn/n/1787061.html

相关文章

负载均衡的几种方式_六种实现负载均衡技术的方式

负载均衡(Load Balance)是集群技术(Cluster)的一种应用,可以将工作任务分摊到多个处理单元,从而提高并发处理能力,有利于提升中大型网站的性能。接下来小编就为大家介绍6种实现负载均衡技术的方式:1. http重定向协议实现负载均衡根…

服务器渲染

一、浏览器端渲染 CSR:是Client Side Render简称,页面上的内容是由js文件进行渲染的,js文件在浏览器上运行,服务器返回一个html模板 过程: 用户发送请求,返回页面,此时页面是一个模板页面&am…

安卓api文档_技术分享基于功能动词短语显式匹配的API方法推荐

CodeWisdom-技术分享基于功能动词短语显式匹配的API方法推荐正确选择和使用API是完成许多软件开发任务的前提条件。流行的API库(例如JDK和安卓API)一般都提供了参考文档,其中对于API功能和使用方式都有描述。然而,由于API开发人员提供的功能描述和应用开…

静态页面和动态页面

静态页面 在静态Web程序中,客户端使用浏览器连接到服务器上,使用HTTP协议发起一个请求,告诉服务器我现在需要得到哪个页面,所有的请求交给Web服务器,之后WEB服务器根据用户的需要,从静态页面的磁盘取出内容…

python 抽奖器_python编写实现抽奖器

本文实例为大家分享了python编写实现抽奖器的具体代码,供大家参考,具体内容如下# codingutf-8import sysimport osimport openpyxlif sys.version_info[0] 2:import Tkinterfrom Tkinter import *else:import tkinter as Tkinterfrom tkinter import *f…

git分支相关代码

添加新分支: git checkout -b [分支名]查看新分支:git branch切换分支: git checkout [分支名]添加到暂存区: git add . 也可以通过“”来进行 添加到本地仓库: git commit -m "注释"提交到远程服务器中: gi…

python collection_Python中Collection的使用小技巧

本文所述实例来自独立软件开发者 Alex Marandon,在他的博客中曾介绍了数个关于 Python Collection 的实用小技巧,在此与大家分享。供大家学习借鉴之用。具体如下:1.判断一个 list 是否为空传统的方式:if len(mylist):# Do somethi…

nginx 重启失败

问题描述 /usr/local/nginx/sbin/nginx -s reload报错 nginx: [error] open() “/usr/local/nginx-1.8.0-tlinux/logs/nginx.pid” failed (2: No such file or directory) 解决方法 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf/usr/local/nginx/sbi…