千锋教育-做有情怀、有良心、有品质的职业教育机构

领取全套视频

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术要点  >  正文
分享到:

前端框架的三驾马车是什么?

时间:2023-03-23 14:50      来源:千锋大连校区 作者:bjq

  前端框架的三驾马车是什么?我们总说, 三大框架是一家, 你抄我, 我抄他, 节操被野兽践踏, Google, 大神和Meta

前端框架的三驾马车是什么

  ● 三大框架分别是

  ○ 尤雨溪团队的 Vue

  ○ Meta(原Facebook) 团队的 React

  ○ Google 团队的 Angular

  ● 今天咱们就来好好分析分析这三个框架, 让你有一个深入的了解

  背景介绍

  Angular

  ● Angular 是 Google 在 2010 年发布的 AngularJS 的升级版,也称为 Angular 2。AngularJS 是由 Misko Hevery 和 Adam Abrons 在 2009 年创建的,最初被称为 "GetAngular",并于 2010 年更名为 AngularJS。随着 AngularJS 的成功,Google 开始全面重构该框架,并于 2016 年发布了 Angular 2。目前,Angular 也是非常流行的前端框架之一。

  ● 在 2016 年前后, Angular 在中国大陆其实还是有市场的, 如果不是尤大神, 没准你现在还在学习这个玩意

  ● 但是后来一方面是尤大神的崛起, 一方面是 Argular 自己作, 结果丧失了大部分中国市场

  React

  ● React 是由Meta(原Facebook) 开发的一个用于构建用户界面的 JavaScript 库。React 的第一个版本发布于 2013 年 5 月,但是在 2015 年,React 的体系结构发生了重大变化,从而推出了 React 16。React 在社区和商业领域都拥有广泛的应用。

  ● React 一问世, 就获得了世界范围内大部分人的喜爱

  ● React 的组件化开发模式, 虚拟 DOM 渲染, 可以与其他框架 库进行结合使用, 以及 "好玩又有意思" 的 JSX 语法深受大家喜爱

  Vue

  ● Vue.js 是由华人开发者尤雨溪于 2014 年 2 月首次发布的。在它的前身 vue.js 0.x 版本中,尤雨溪还是在 Google 工作,后来辞职成为开发者。Vue.js 在 2015 年正式发布了 1.0 版本,随着社区的快速发展,现在已经成为一个流行的前端框架。

  ● Vue 一经问世, 一下子就风靡大陆市场

  ● 完美的中文配套文档, 超低的入学门槛, 一度被人说是 "傻瓜式框架", 易学易用

  ● 褒贬不一的双向数据绑定, 超级容易上手的渐进式框架模式

  ● 都是深受我们喜欢的点

  详细分析

  Vue

  ● Vue 是一个轻量级的前端框架,被称为是易于上手的框架,因为它的 API 设计非常直观和简单。Vue 使用了类似于 React 的虚拟 DOM 来实现高效的渲染,并提供了一些有用的指令、组件等,来帮助开发者快速构建复杂的应用。Vue 的性能非常好,因为它的体积小,加载速度快,同时也提供了一些优化工具,如异步组件、代码分割等。

  ● 优点:

  ○ 简单易学

  ■ Vue 的核心库非常精简,学习曲线相对较低,开发者可以快速上手使用。

  ○ 双向数据绑定

  ■ Vue 支持双向数据绑定,可以使得 UI 和数据同步更新,避免了手动操作 DOM 的繁琐。

  ○ 组件化开发

  ■ Vue 也采用组件化开发的思想,可以让开发者更好地组织和复用代码。

  ○ 虚拟 DOM

  ■ Vue 也使用虚拟 DOM 技术,可以优化页面性能,提高渲染效率。

  ○ 社区活跃

  ■ Vue 有着庞大而活跃的社区,开发者可以轻松获取各种资源和插件,这些资源和插件可以提高开发效率。

  ● 缺点:

  ○ 依赖第三方库

  ■ Vue 需要使用第三方库来实现一些功能,如 Vuex 管理状态、Vue Router 实现路由等,这使得开发者需要学习和使用更多的工具和库。

  ○ 缺乏严格的规范

  ■ Vue 缺乏严格的规范,开发者可能会使用不同的命名规则、组件结构等,这可能会导致项目的可维护性降低。

  ○ 市场占有率相对较低

  ■ 相比于 React 和 Angular,Vue 的市场占有率相对较低,这可能会影响一些开发者的选择。

  ● 总的来说,Vue 作为一个简单、易学、灵活、高效的前端框架,具有很多优点,但也存在一些缺点。在选择使用 Vue 还是其他前端框架时,需要根据具体的项目需求和开发团队的技能水平来进行评估和选择。

  React

  ● React 是一个用于构建用户界面的 JavaScript 库,它的核心思想是通过组件化开发来提高应用的开发效率和性能。React 的优点是,它的 API 设计简单明了,适用于构建大型的应用,同时它提供了一个强大的虚拟 DOM,能够快速渲染出复杂的 UI 组件。React 还有一个强大的社区,提供了大量的第三方组件和插件。

  ● 优点:

  ○ 高效的虚拟 DOM

  ■ React 采用虚拟 DOM 技术,可以减少页面重绘的次数,提高页面渲染效率。

  ○ 组件化开发

  ■ React 采用组件化开发的思想,可以让开发者更好地组织和复用代码。

  ○ 单向数据流

  ■ React 采用单向数据流的架构,使得应用的状态变得可控和可预测。

  ○ 生态系统丰富

  ■ React 拥有庞大的生态系统,包括 Redux 状态管理、React Router 实现路由等等,可以帮助开发者更好地开发和维护应用。

  ○ 跨平台支持

  ■ React 还支持跨平台开发,可以用于构建 Web 应用、移动应用、桌面应用等多种平台。

  ● 缺点:

  ○ 学习成本高

  ■ React 采用 JSX 语法,开发者需要掌握这种语法以及相关的工具和库,学习成本较高。

  ○ 生态系统庞杂

  ■ 虽然 React 的生态系统丰富,但也存在一些庞杂的库和组件,选择合适的库和组件需要一定的技术水平和经验。

  ○ 组件化开发的限制

  ■ React 的组件化开发思想虽然提高了代码的复用性和可维护性,但也存在一些限制,如组件之间的通信、状态管理等,需要开发者花费一定的精力去解决。

  ● 总的来说,React 作为一个高效、灵活、可维护的前端框架,具有很多优点,但也存在一些缺点。在选择使用 React 还是其他前端框架时,需要根据具体的项目需求和开发团队的技能水平来进行评估和选择。

  Angular

  ● Angular 是 Google 开发的前端框架,它拥有很多先进的特性,如依赖注入、模块化、双向数据绑定等。Angular 的核心思想是通过模块化、组件化开发来提高应用的可维护性.

  ● 优点:

  ○ 完整的 MVC 框架

  ■ Angular 提供了一个完整的 MVC 框架,包括数据绑定、路由、依赖注入、指令等,这些功能可以帮助开发者更加方便地管理和维护代码。

  ○ 响应式编程

  ■ Angular 支持响应式编程,可以轻松处理异步数据流。这种编程方式可以提高代码的可读性、可维护性和可测试性。

  ○ TypeScript 支持

  ■ Angular 基于 TypeScript,提供了更好的类型检查、代码提示、重构等功能,可以降低代码出错的风险,同时提高开发效率。

  ○ 适用于大型应用

  ■ Angular 适用于构建大型、复杂的 Web 应用,可以帮助开发者更好地组织代码和管理模块。

  ● 缺点:

  ○ 学习成本高

  ■ 由于 Angular 提供了完整的 MVC 框架,学习成本相对较高,需要掌握的知识点较多,对于初学者来说可能会有一定的难度。

  ○ 性能问题

  ■ 由于 Angular 提供了较多的功能和依赖,有时会导致性能问题。开发者需要谨慎使用依赖注入、数据绑定等功能,以避免影响应用的性能。

  ○ 版本升级问题

  ■ Angular 的版本升级较为频繁,升级过程中可能会导致一些兼容性问题。这需要开发者花费一定的时间和精力去适应新的版本。

  ● 总的来说,Angular 作为一个完整的 MVC 框架,具有很多优点,但也存在一些缺点。在选择使用 Angular 还是其他前端框架时,需要根据具体的项目需求和开发团队的技能水平来进行评估和选择。

  再谈 vue 和 react 的生态系统

  ● 生态系统和周边, 其实是一个框架生存状态的完美体现, 越是良好的生态系统, 那么这个框架的支持度和支持者就越多, 同时也表示了有更多的人在关注和使用这个框架

  Vue

  ● Vue.js 近年来发展迅速,其完整生态系统包括以下方面:

  1. Vue.js 核心库

  ● Vue.js 核心库提供了组件化、响应式等功能,是 Vue.js 生态系统的核心。

  2. Vue CLI

  ● Vue CLI 是官方提供的脚手架工具,可以快速创建一个 Vue.js 应用,并提供了丰富的插件和模板,让开发者可以更高效地开发和维护应用。

  3. Vuex

  ● Vuex 是一个状态管理库,它可以帮助开发者更好地管理应用的状态,实现组件之间的通信和数据共享。

  4. Vue Router

  ● Vue Router 是一个路由管理库,可以帮助开发者实现页面之间的切换和跳转,同时支持动态路由和路由参数等功能。

  5. Element UI

  ● lement UI 是一个基于 Vue.js 的 UI 组件库,提供了丰富的组件和样式,可以帮助开发者更快地构建页面和应用。

  6. Nuxt.js

  ● Nuxt.js 是一个基于 Vue.js 的服务端渲染框架,可以帮助开发者更好地处理 SEO 和首屏加载速度等问题。

  7. Vue Test Utils

  ● Vue Test Utils 是一个官方提供的测试工具库,可以帮助开发者编写单元测试和集成测试。

  8. pinia

  ● Pinia 是一个状态管理库,是基于 Vue.js 3.0 的新特性 Proxy 和 Reactive 开发的。它提供了一种新的方式来管理 Vue.js 应用中的状态,与 Vue.js 官方的 Vuex 状态管理库类似,但更加简单、易用和灵活。

  9. vite

  ● Vite 是一款基于原生 ES Modules 的前端构建工具,由 Vue.js 的作者尤雨溪开发。与传统的打包工具不同,Vite 可以在开发环境下实现实时编译和模块化构建,提供了更加快速的开发体验。

  React

  ● React 生态系统在近几年有了快速的发展,涌现了许多新的工具和库,以下是其中一些:

  1. React Native

  ○ React Native 是一个用于构建原生移动应用程序的框架,它可以使用 React 的语法来构建 iOS 和 Android 应用。它具有跨平台、性能优秀、开发效率高等优点,已经成为移动应用开发的主流选择之一。

  2. Next.js

  ○ Next.js 是一个基于 React 的服务端渲染框架,它可以为 React 应用程序提供更好的 SEO、更快的加载速度、更好的用户体验等优势。它的静态导出功能使得部署变得更加简单,而且还支持动态路由、API 路由、SSR 和 SSG 等功能。

  3. Reduxjs Toolkit

  ○ Redux Toolkit 是一个官方推荐的 Redux 工具集,它提供了一系列的工具函数来简化 Redux 的使用,包括创建 Redux Store、定义 Reducer、处理异步操作等。使用 Redux Toolkit 可以减少样板代码和提高开发效率。

  4. React Query

  ○ React Query 是一个用于处理数据查询和缓存的库,它可以使得数据查询和状态管理更加简单和高效。它提供了一系列的钩子函数和工具函数来处理数据查询和缓存,可以与其他状态管理库(如 Redux)或 UI 库(如 Material UI)结合使用。

  5. Styled Components

  ○ Styled Components 是一个用于构建样式化组件的库,它允许使用 JavaScript 来定义组件样式。它具有更好的可读性、可维护性和可重用性,可以更加方便地管理组件的样式。

  6. UmiJS、DVA

  UmiJS中文可发音为乌米,是一个可插拔的企业级 react 应用框架。你可以将它简单的理解为一个专注性能的类 next.js 前端框架,并通过约定、自动生成和解析代码等方式来辅助开发,减少我们开发者的代码量。

  DVA是蚂蚁金服推出的一个单页应用框架,对redux,react-router,redux-saga进行了上层封装。redux-saga是一个用于管理redux应用异步操作的中间件,redux-saga通过创建sagas将所有异步操作逻辑收集在一个地方集中处理,可以用来代替redux-thunk中间件

相关文章

热门视频

开班信息

  • Unity游戏开发班--------------------

    07.13抢座

  • 网络安全培训班--------------------

    06.15抢座

  • 大数据培训班--------------------

    06.29抢座

  • 软件测试培训班--------------------

    06.15抢座

  • UI交互设计培训--------------------

    06.29抢座

  • 物联网培训班--------------------

    06.29抢座

  • Java培训班--------------------

    06.15抢座

  • 云计算培训班--------------------

    06.29抢座

  • Python培训班--------------------

    06.29抢座

  • HTML5大前端班--------------------

    06.15抢座

  • 北京总部地址:北京市海淀区宝盛北里西区28号中关村智诚科创大厦4层
    北京沙河校区:北京市昌平区沙阳路18号北京科技职业技术学院广场服务楼
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 深圳校区地址:深圳市宝安区宝安大道5010号西部硅谷B座C区1层108
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 上海校区地址:上海市宝山区同济支路199号智慧七立方3号楼2-4层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 广州校区地址:广州市白云区永平街永泰学山塘学山文化创意谷A1栋六楼
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 郑州二七区校区地址:郑州市二七区航海中路60号海为科技园C区10层
    郑州高新区校区地址:郑州市高新区金梭路与银杏路交叉口教育科技产业园南门D座4层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 大连校区地址:辽宁省大连市高新园区爱贤街10号大连设计城A座901
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 武汉金融港校区地址:武汉市东新区光谷大道77号金融港B18栋三、四层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 成都校区地址:成都市高新区肖家河沿街138号肖家河大厦三楼
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 西安校区地址:西安市雁塔区高新六路52号立人科技C座西区4楼
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 杭州旺田校区:浙江省杭州市上城区九堡镇旺田书画城A座4层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 青岛校区地址:青岛市市北区龙城路31号卓越世纪中心4号楼5层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 重庆校区地址:重庆市九龙坡区科园一路3号渝高大厦9楼
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 长沙校区地址:湖南省长沙市岳麓区麓谷企业广场A2栋三单元306号
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 哈尔滨校区地址:哈尔滨市松北区世泽路689号 科技创新城4号楼405
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 南京校区地址:南京市建邺区应天大街780号弘辉产业园1栋2层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 太原校区地址:太原市小店区长治路230号能源互联网大厦6层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 沈阳校区地址:辽宁省沈阳市浑南区世纪路16号东大软件园B园B1座A201
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 合肥校区地址:合肥市包河区徽州大道396号东方广场B座12A
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 贵阳校区地址:贵阳市云岩区延安东路37号物资大厦老楼9楼
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 济南校区地址:济南市历下区历山路36号齐鲁师范学院利宝产业大厦3F
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python人工智能+数据分析培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、网络安全培训、区块链培训、影视剪辑包装培训、游戏原画培训、全媒体运营培训
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 千锋教育服务号

    了解千锋动态
    关注千锋教育服务号

  • 千锋教育移动站

    扫一扫快速进入
    千锋移动端页面

  • 千锋互联服务号

    扫码匿名提建议
    直达CEO信箱