首页 > 其他分享 >2024主流前端框架对比和选择

2024主流前端框架对比和选择

时间:2024-09-25 22:19:37浏览次数:3  
标签:React Vue 框架 前端 2024 HTML AngularJS 组件 Angular

Hello,大家好,我是Feri,一枚十多年的程序员,同时也是一名在读研究生,关注我,且看一个平凡的程序员如何在自我成长,CodingSir是我想打造一个编程社区,只为各位小伙伴提供编程相关干货知识,希望在自我蜕变的路上,我们一起努力,努力什么时候开始都不晚,我,从现在开始做起!

一、前言

        我看有小伙伴,私聊我,想要说说目前主流的前端框架和之间的区别,开发的时候怎么选择?那么安排,必须妥妥的安排上,所以今天就聊聊目前前端主流框架的对比和开发的时候怎么选择?小白到底该如何选择?主要通过2024年前端的主流框架实际开发方面进行一下解析,希望各位小伙伴有所收获,废话不多说,开搞。

二、实现

2.1 2024主流的前端框架

类目

React

Vue

Angular

发布年份

2013

2014

2010

大小

较小

更小

较大

类型

声明式库

渐进式框架

完整框架

类型系统

JavaScriptX

TypeScript优先

TypeScript优先

数据流

单向

双向

双向

模板系统

JSX

基于HTML的模板

HTML+TypeScript

生态系统

庞大

广泛

广泛

社区支持

强大

活跃

强大

服务端渲染

支持

支持

支持

移动端支持

React Native

Vue Native

Ionic/NativeScript

起源

Facebook

Evan You

Google

版本控制

Facebook

社区

Google

学习曲线

适中

简单

困难

模板语法

JSX

HTML-based

HTML with Angular directives

数据绑定

单向数据流

双向数据绑定

双向数据绑定

构建工具

Create React App,

Webpack Vue-Cli, Vite

Webpack Angular -Cli

状态管理

Redux、MobX

Vuex、Pinia

NgRx

性能

优秀

优秀

良好

企业采用率

维护者

Facebook

Vue.js团队

Google

文档完善度

社区规模

大型企业采用

广泛

逐渐增长

广泛

适用场景

大型应用

小型到中型应用

大型复杂应用

2.2 React

1.React概述

React(有时叫React.js 或 ReactJS)是Facebook推出的一个为数据提供渲染为 HTML 视图,用来构建用户界面的开源 JavaScript 库。

React 视图通常采用包含以自定义 HTML 标记规定的其他组件的组件渲染。React 为程序员提供了一种子组件不能直接影响外层组件("data flows down")的模型,数据改变时对 HTML 文档的有效更新,和现代单页应用中组件之间干净的分离。

React官网地址:https://www.reactjscn.com/

2.目前招聘职位

3.特性:

A.声明式

React 可以非常轻松地创建用户交互界面。为你应用的每一个状态设计简洁的视图,在数据改变时 React 也可以高效地更新渲染界面。以声明式编写 UI,可以让你的代码更加可靠,且方便调试。

B.组件化

创建好拥有各自状态的组件,再由组件构成更加复杂的界面。无需再用模版代码,通过使用 JavaScript 编写的组件你可以更好地传递数据,将应用状态和 DOM 拆分开来。

C.一次学习,随处编写

无论你现在正在使用什么技术栈,你都可以随时引入 React 开发新特性。React 也可以用作开发原生应用的框架 React Native。

2.3 Vue

1.Vue概述

Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。无论是简单还是复杂的界面,Vue 都可以胜任。

Vue官网地址:https://cn.vuejs.org/

2.Vue2和Vue3:

Vue3是Vue当前的最新主版本。它包含了一些Vue2中没有的新特性 (比如Teleport、Suspense,以及多根元素模板)。同时它也包含了一些与Vue2非兼容性的变更。

尽管存在差异,但大多数VueAPI在两个大版本之间是共享的,所以Vue2知识将继续在Vue3中发挥作用。需要注意的是,组合式API原本是一个Vue3独有的特性,但目前已兼容至Vue2且在Vue2.7 中可用。总的来说,Vue3提供了更小的包体积、更好的性能、更好的可扩展性和更好的TypeScript/IDE支持。如果现在要开始一个新项目,推荐选择Vue3

3.Vue3特有语法:

  1. Composition API: 这是Vue 3中的一个新特性,它允许开发者通过创建setup函数来使用reactive, ref, computed等API。
  2. Fragment: Vue 3允许组件有多个根节点,这通过Fragment来实现。
  3. Teleport: Teleport 是一个将子组件内容渲染到DOM的某个不同位置的功能。
  4. Emits: 在Vue 3中,组件的emits选项允许你明确声明组件可以接受的事件。
  5. Data Injections: Vue 3中的provide/inject用于父组件向子孙组件注入数据,而不需要显式地通过props传递。

4.Vue特性:

  • 无需构建步骤,渐进式增强静态的 HTML
  • 在任何页面中作为 Web Components 嵌入
  • 单页应用 (SPA)
  • 全栈 / 服务端渲染 (SSR)
  • Jamstack / 静态站点生成 (SSG)
  • 开发桌面端、移动端、WebGL,甚至是命令行终端中的界面

5.目前招聘的职位:

2.4 Angular

1.Angular概述:

AngularJS诞生于2009年,由Misko Hevery等人创建,是一款构建用户界面的前端框架,后为Google所收购。 Angular是AngularJS的重写,Angular2以后官方命名为Angular,2.0以前版本称为AngularJS。AngularJS是用JavaScript编写,而Angular采用TypeScript语言编写,是ECMAScript6的超集。

Angular是一个应用设计框架与开发平台,用于创建高效、复杂、精致的单页面应用,通过新的属性和表达式扩展了 HTML,实现一套框架,多种平台,移动端和桌面端。 Angular有着诸多特性,最为核心的是:MVVM、模块化、自动化双向数据绑定、语义化标签、依赖注入等等。

AngularJS官网地址:AngularJS — Superheroic JavaScript MVW Framework

2.Angular特性:

  1. 双向数据绑定:AngularJS使用双向数据绑定机制,可以实时更新视图和模型之间的数据变化,减少了手动操作DOM的需要,提高了开发效率。
  2. 模块化设计:AngularJS使用模块化的方式组织代码,使得应用程序更易于维护和扩展。
  3. 依赖注入:AngularJS支持依赖注入,可以方便地管理组件之间的依赖关系。
  4. 指令系统:AngularJS提供了丰富的指令,可以扩展HTML的功能,实现自定义的行为和样式。
  5. 测试友好:AngularJS提供了强大的测试工具和框架,可以方便地进行单元测试和集成测试。
  6. 组件化:Angular应用是完全组件化的,每个Angular应用都至少包含一个根组件,并且这个根组件可以包含其他子组件。组件之间通过输入/输出属性、服务或者事件发射器进行通信,这样的设计让代码更加模块化,提高了代码的可读性和可维护性

3.Angular招聘:

三、总结

        好啦,通过刚刚的内容,这3个框架,是不是还是有一些区别的?如果条件允许建议3个都会点,然后把其中一种框架深入研究,可以熟练使用框架进行项目的开发无论是实现PC端的系统还是移动端的App都需要快速上手,具备独立开发,这样求职才更有出路。但是相对而言,Angular的职位相对较少,所以只是为了求职还是建议Vue或React。无论选择哪个,都需要静下心,努力沉淀,方可有路可走。如果你对前端框架还有什么想要了解的欢迎评论区或私信我,或者你想要一些好用的半成品项目,也都可以给大家进行分享哟。

        如果本篇对你有所帮助,希望给我来个关注、收藏、评论一键三连哟,感谢各位的支持,你的支持就是我前进的动力!

好啦,今天这篇就打这啦,有任何问题可以随时进行评论交流,如果你有什么想要Feri更新的,请关注CodingSir查看更新的内容,也可以随时关注,私信我哟,成长的路上,有你们相伴,真是人生一大幸事!

标签:React,Vue,框架,前端,2024,HTML,AngularJS,组件,Angular
From: https://blog.csdn.net/CodingSir168/article/details/142534606

相关文章

  • AgentLite 一个轻量级LLM Agent框架
    一些初步的想法AI代理的核心架构开始趋于稳定,开发人员似乎更关注实践上。AI代理将扩展其功能,特别是在视觉探索、网页浏览和移动操作系统集成等领域。Salesforce似乎正在大力推动其在AI代理研究方面的进步,特别是关注大型动作模型及其开发框架。比较开发框架本质上是具有......
  • 2024.9.24 Python与C++面试八股文
    1.externextern关键字用于在多个文件中引用同一个全局变量的声明在一个头文件中,如果这个变量声明了,但是在cpp文件中没找到他的定义,那么编译就会报错,但是如果加了extern,编译器就不会给头文件报错,而是给cpp文件报错,如果函数没定义的话。或者定义出错的话。2.关于反复调用简......
  • 2024.9 做题笔记
    CF1575IIllusionsoftheDesert看这个边权这么复杂,猜测其必然有一些性质。对\(a_u,a_v\)的正负分讨易得\(\max(|a_u+a_v|,|a_u-a_v|)=|a_u|+|a_v|\),树剖树状数组单点修改链求和即可。ABC177FIhateShortestPathProblem考虑dp,设\(f_{i,j}\)表示到达第\(i\)行第\(......
  • 前端mjs和js文件区别
    .js文件和.mjs文件之间的主要区别在于模块系统的使用:1.模块类型.js文件:默认使用CommonJS模块系统(尤其在Node.js环境中)。可以使用require()导入模块和module.exports导出模块。.mjs文件:明确表示使用ES6模块系统(ECMAScriptModules)。使用import和e......
  • 2024年一款非常好用的视频剪辑软件会声会影Corel VideoStudio2024,非常适合新手
    随着数字媒体的飞速发展,视频剪辑已成为表达创意、传播信息的重要工具。2024年,视频剪辑软件市场迎来了新一轮的革新与竞争。今天,我们就来盘点一下这一年里备受瞩目的十大视频剪辑软件,无论你是初学者还是专业团队,都能在其中找到适合你的那一款。会声会影CorelVideoStudio2024一......
  • 20240906
    NewDimensions我们假设枚举\(a,b\)那么我们显然可以发现\(a^2+b^2+c^2-ab-ab-bc\)中\(c\)越大越好#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongconstintN=5e3+5;intn,v[N],ans;signedmain(){cin>>n;for......
  • 20240925 随机训练
    Yukicoder2897题目描述给定两个点集\(S,T\),我们定义\(d((x_1,y_1),(x_2,y_2))=|x_1-x_2|+|y_1-y_2|\)。我们定义两个集合\(S,T\)的距离\(D(S,T)=\min\limits_{s\inS,t\inT}\{d(s,t)\}\)。求\(D(S,T)\)。思路我们把每个\(S\)中的元素放在一起做一个多源bfs,然后对......
  • 20240905
    AlternatingString我们可以设状态\(dp[i][0/1][0/1]\)表示当前考虑到第几个,长度为奇数还是偶数,有没有用\(1\)操作#include<bits/stdc++.h>usingnamespacestd;constintN=4e5+5,M=27;intt,n,ans,a[N],dp[N][2][2];chars;voidSolve(){cin......
  • 社区来稿丨一个真正意义上的实时多模态智能体框架,TEN Framework 为构建下一代 AI Agen
    本文由RTE开发者社区成员通过社区网站投稿提供,如果你也有与实时互动(Real-TimeEngagement,RTE)相关的项目分享,欢迎访问网站rtecommunity.dev发布,优秀项目将会在公众号发布分享。   自从OpenAI展示了GPT-4o的实时对话能力后,感觉电影《Her》中的场景瞬间成了现实。受......
  • 2024最新pwn环境配置与基础讲解
    从零开始配置ubuntupwn虚拟机参考一个比较新的环境搭建教程:#ubuntu20.04PWN(含x86、ARM、MIPS)环境搭建致敬传奇大神hollk师傅博客中的配置过程可参见B站视频:2024最新pwn环境配置与基础讲解1.ubuntu虚拟机安装24.04下载:https://ubuntu.com/download/desktop/thank-you?ver......