前端三大主流框架Vue React Angular有何不同?

前端主流框架,Vue React Angular,大家可能都经常在使用,Vue React,国内用的较多,Angualr相对用的少一点。但是大家有思考过这三大框架的不同吗?

一、项目的选型上

中小型项目:Vue2、React居多

型项目:Vue3、React居多、Angular次之(出于维护等方面考虑,国内使用的相对少一点)

首先在做项目的选型上,Vue3没出来以前(即vue2的时候)大型项目更多的考虑选选择React,Angular也有一些(相对较少,这是因为Angular在国内用的人相对来说少一点,而且维护相对来说没有react和vue方便,angular的UI框架相对没那么丰富,不过最近几年也开始慢慢地更多UI框架也兼容了支持angular),因为Vue2的双向绑定比较耗性能,但是现在出了vue3后,Vue3在vue2的基础上做了很多的改进,目前大型项目也可以选vue3了。Angular用的是typescript语法。

二:双向绑定的不同

(1)其中vue2与vue3的大家可看看以下这篇,就不再赘述了

Vue2与Vue3的区别-CSDN博客

(2)React

使用的是虚拟DOM和事件监听来实现。它相当于创建复制了一棵DOM树,一旦数据发生变化,会通过diff算法去一一比较修改。React 中的双向绑定通常是通过状态(state)和设置状态的函数(setState)来实现的,而不是直接操作 DOM 元素的值。双向绑定意味着数据可以从用户界面流向状态,同时状态的变化也能立即反映到用户界面上。

(3)Angular则是用的脏值检测,就是一旦数据发生了变化,所有的数据会从上到下整个一一检测,比较耗费性能

三、UI框架支持

各自都有不同的UI框架支持,除了以下的,还有其他的,目前用的比较多的有以下几个:

(1)Vueelement-ui 、element plus 、antdesign vue...等

  (2) Reactantdesign、antdesignPro...

(3) Angularmaterial、boostrap...

四、全局状态管理

(1)Vue:Vuex、Pinia

其中:a)Vuex是 Vue.js 的状态管理模式和库,‌它采用集中式存储管理应用的所有组件的状态,‌并以相应的规则保证状态以一种可预测的方式发生变化,Vuex 需要额外的配置支持 TypeScript。

         b)Pinia:是 Vue 的存储库,Pinia 基于更加原子的设计,每个 store 都是完全独立的,它允许您跨组件/页面共享状态,比Vuex会更小一点,类似 Vuex, 是 Vue 的另一种状态管理方案。

Pinia 原生支持 TypeScript。

 (2) React:ReduxRedux Toolkit

     其中:a)Redux :是一个不可变状态容器,‌用于 JavaScript 应用的可预测状态管理。‌它提供了一个单一的全局存储来管理应用的状态

              b)Redux Toolkit :是 Redux 的一个增强工具集,‌集成了 Redux 的核心功能,‌并提供了一系列的工具和方法,‌以帮助开发者更高效地进行状态管理

 (3) Angular:NgRx(NgRx 是一个基于 RxJs 构建的状态管理库,‌它利用 TypeScript 的类型特性来简化实现,‌例如 reducer 的创建和促进类型安全编程。‌NgRx 提供了对状态管理的全面支持,‌包括数据的持久化、‌中间件支持等,‌适合构建大型、‌复杂的应用程序

五、社区支持

(1)vue和react的社区支持比较庞大,遇到问题方便及时快速得到解决 

 (2)vue更容易上手、react也一样但是由于国内用的angular相对较少,所有angular的资源相对没那么丰富

六、学习曲线

(1)Vue的学习曲线相对较为平缓。它的API更加直观和易于理解,对于初学者来说更加友好。Vue还提供了许多工具和插件来帮助开发者提高开发效率。

(2)React的学习曲线相对较陡,特别是当你开始深入了解其生态系统(如Redux、React Router等)时。但是,一旦你掌握了React的核心概念和模式,你将能够构建出高性能和可维护的应用程序。

(3)Angular:Angular的学习曲线介于React和Vue之间。由于Angularjs(即Angular1)其MVC架构和内置的指令系统,它提供了更清晰的组织代码的方式。然而,随着Angular的发展(如升级到Angular 2+),它的API和概念也在不断变化,这可能给初学者带来一些挑战

七、查看三大框架最新版本

用命令查看:cmd
(1)Vue: 执行npm view vue version

(2)React:npm view react version


(3)Angular:npm view @angular/core version

八、框架官网地址

  • Vue: Vue.js - The Progressive JavaScript Framework | Vue.js

  • Angular: https://angular.io/

  • React: React

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/384090.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

规范:前后端接口规范

1、前言 随着互联网的高速发展,前端页面的展示、交互体验越来越灵活、炫丽,响应体验也要求越来越高,后端服务的高并发、高可用、高性能、高扩展等特性的要求也愈加苛刻,从而导致前后端研发各自专注于自己擅长的领域深耕细作。 然…

SpringMVC基础

SpringMVC ssm:mybatisSpringSpringMVC MVC三层架构 1、什么是MVC MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范 是将业务逻辑、数据、显示分离…

应用层自定义协议以及序列化和反序列化

文章目录 应用层自定义协议以及序列化和反序列化1、应用层自定义协议1.1、应用层1.2、协议 2、序列化和反序列化3、TCP 为什么支持全双工4、jsoncpp基础4.1、序列化4.2、反序列化 5、实现网络版计算器6、手写序列化和反序列化 应用层自定义协议以及序列化和反序列化 1、应用层…

Anconda 快速常用命令简洁版

目的:简单清楚的使用基本的conda 命令 可能需求 查看项目中的虚拟环境及依赖是否满足需求操作新环境来满足项目或者论文的实现 Anconda 常用命令 conda 查看基础命令1. 进入Anaconda 环境2. 查看版本3.查看有哪些虚拟环境4.激活虚拟环境5. 进入虚拟环境查看6. 退出…

基于STM32瑞士军刀--【FreeRTOS开发】学习笔记(二)|| 堆 / 栈

堆和栈 1. 堆 堆就是空闲的一块内存,可以通过malloc申请一小块内存,用完之后使用再free释放回去。管理堆需要用到链表操作。 比如需要分配100字节,实际所占108字节,因为为了方便后期的free,这一小块需要有个头部记录…

IDEA缓存和索引

IDEA缓存和索引 —2020年06月10日 IntelliJ IDEA首次加载项目的时候。都会创建索引,而创建索引的时间根项目的文件多少成正比。 IntelliJ IDEA的缓存和索引主要是用来加快文件查询,从而加快各种查找、代码提示等操作的速度。 某些特殊情况下&#xf…

Go语言入门

目录 前言——碎碎念 环境安装 配置环境变量 变量的定义 数据类型 数字型 字符与字符串 数据类型转换 运算符 算术运算符 关系运算符 逻辑运算符 位运算符(二进制) 赋值运算符 其他运算符(指针) 键盘的输入与输出…

使用 Python创建照片文件复制和压缩工具

在这篇博客中,我们将探索如何使用 wxPython 创建一个 GUI 工具,用于选择文件夹中的照片文件、显示预览、选择并复制文件到指定目录,以及将选中的照片压缩到一个 ZIP 文件中。这个工具不仅功能强大,而且提供了用户友好的界面。 C:\…

3.多租户调研1

https://gitee.com/xiaoqiangBUG/hello-ruoyi-cloud.git 1.mybatis plus 的插件 TenantLineInnerInterceptor 是 MyBatis Plus 框架中的一个拦截器,它用于实现多租户系统的数据隔离。在多租户应用中,不同的租户应该只能访问到自己的数据,而…

时序分解 | Matlab基于CEEMDAN-CPO-VMD的CEEMDAN结合冠豪猪优化算法(CPO)优化VMD二次分解

时序分解 | Matlab基于CEEMDAN-CPO-VMD的CEEMDAN结合冠豪猪优化算法(CPO)优化VMD二次分解 目录 时序分解 | Matlab基于CEEMDAN-CPO-VMD的CEEMDAN结合冠豪猪优化算法(CPO)优化VMD二次分解效果一览基本介绍程序设计参考资料 效果一览…

数据结构经典测试题4

1. #include <stdio.h> int main() { char *str[3] {"stra", "strb", "strc"}; char *p str[0]; int i 0; while(i < 3) { printf("%s ",p); i; } return 0; }上述代码运行结果是什么&#xff1f; A: stra strb strc B: s…

RFID温度标签: 冷链管理迈向智能化、精准化的新时代。

在现代商业和社会发展中&#xff0c;冷链物流扮演着至关重要的角色。它不仅涉及食品、药品等敏感物资的安全运输&#xff0c;更是保障公众健康与福祉的重要环节。随着人们对生鲜冷链需求的日益增长&#xff0c;冷链物流行业也迎来了以物联网技术为主导发展新阶段。我国冷链物流…

嵌入式中什么是三次握手

在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「嵌入式的资料从专业入门到高级教程」&#xff0c;点个关注在评论区回复“666”之后私信回复“666”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01; 在网络数据传输中&#xf…

基站光伏直流叠光能效管理方案

安科瑞 华楠 基站现状和趋势 5G基站是专门提供5G网络服务的公用移动通信基站。5G基站主要用于提供5G空口协议功能&#xff0c;支持与用户设备、核心网之间的通信。按照逻辑功能划分&#xff0c;5G基站可分为5G基带单元与5G射频单元&#xff0c;二者之间可通过CPRI或eCPRI接口…

Python3网络爬虫开发实战(3)网页数据的解析提取

文章目录 一、XPath1. 选取节点2. 查找某个特定的节点或者包含某个指定的值的节点3. XPath 运算符4. 节点轴5. 利用 lxml 使用 XPath 二、CSS三、Beautiful Soup1. 信息提取2. 嵌套选择3. 关联选择4. 方法选择器5. css 选择器 四、PyQuery1. 初始化2. css 选择器3. 信息提取4. …

【游戏制作】使用Python创建一个完整的2048游戏项目

目录 项目运行展示 项目概述 项目目标 项目结构 安装依赖 代码实现 1. 导入库 2. 创建 Game2048 类 3. 设置UI界面 4. 加载二维码图片 5. 创建菜单 6. 游戏逻辑和功能 7. 运行应用 总结 创建一个完整的2048游戏项目 项目运行展示 项目概述 在这个项目中&#xff…

TypeScript核心

常用操作方式 1、类型推断 ts会根据变量存放的初始值来进行变量类型限定。 如上&#xff1a;开始str是字符串&#xff0c;则此变量以后就只能存字符串值。 开发中的意义&#xff1a;变量分配字符串值&#xff0c;后期可能会书写一些字符串功能、方法等相关的操作&#xff0c;如…

在Linux中,部署及优化Tomcat

tomcat概述 自 2017 年 11月编程语言排行榜 Java 占比 13%,高居榜首&#xff0c;Tomcat 也一度成为 Java开发人员的首选。其开源、占用系统资源少、跨平台等特性深受广大程序员喜爱。本章主要学习如何部署 Tomcat 服务&#xff0c;根据生产环境实现多个虚拟主机的配置&#xf…

GPT-4引领:AI新浪潮的转折点

OneFlow编译 **翻译&#xff5c;贾川、杨婷、徐佳渝 编辑&#xff5c;王金许** 一朝成名天下知。ChatGPT/GPT-4相关的新闻接二连三刷屏朋友圈&#xff0c;如今&#xff0c;这些模型背后的公司OpenAI的知名度不亚于任何科技巨头。 不过&#xff0c;就在ChatGPT问世前&#x…

ISP 代理提供商:互联网安全的关键参与者

简介&#xff1a;互联网安全的演变态势 互联网改变了我们互动、工作和开展业务的方式&#xff0c;但也带来了与安全性和可访问性相关的重大挑战。在这个数字时代&#xff0c;互联网服务提供商 (ISP) 代理提供商在解决这些问题方面发挥着关键作用。他们提供的基本服务不仅可以增…