目前前端流行的框架总结

news2025/1/17 15:50:10

框架

前端框架

前端框架一般指用于简化网页设计的框架,使用广泛的前端开发套件,比如,jquery,extjs,bootstrap等等,这些框架封装了一些功能,比如html文档操作,漂亮的各种控件(按钮,表单等等),使用前端框架可以帮助快速地搭建网站。

框架是提供一套完整的解决方案,按照规定好的代码结构来做编排,使用前端框架可以降低界面开发周期和提高界面的美观性。

随着Web 越来越规范和标准的统一,Web组件化技术不断革新,移动端开发不断升华,前端框架层出不穷。

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

三大框架分别是:

  • 尤雨溪团队的 Vue
  • Meta(原Facebook) 团队的 React
  • Google 团队的 Angular

但前端又不止这些框架,下面,简单介绍一下比较流行的几个前端框架。

更多详细内容,请微信搜索“前端爱好者戳我 查看

常用的前端框架

Vue

官网:https://cn.vuejs.org/

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

完美的中文配套文档, 超低的入学门槛, 一度被人说是 “傻瓜式框架”, 易学易用,褒贬不一的双向数据绑定以及超级容易上手的渐进式框架模式,都是深受我们喜欢的点。

优点

  • 简单易学: Vue 的核心库非常精简,学习曲线相对较低,开发者可以快速上手使用。
  • 双向数据绑定 : Vue 支持双向数据绑定,可以使得 UI 和数据同步更新,避免了手动操作 DOM 的繁琐。
  • 组件化开发: Vue 也采用组件化开发的思想,可以让开发者更好地组织和复用代码。
  • 虚拟 DOM:Vue 也使用虚拟 DOM 技术,可以优化页面性能,提高渲染效率。
  • 社区活跃: Vue 有着庞大而活跃的社区,开发者可以轻松获取各种资源和插件,这些资源和插件可以提高开发效率。

缺点

  • 依赖第三方库: Vue 需要使用第三方库来实现一些功能,如 Vuex 管理状态、Vue Router 实现路由等,这使得开发者需要学习和使用更多的工具和库。
  • 缺乏严格的规范: Vue 缺乏严格的规范,开发者可能会使用不同的命名规则、组件结构等,这可能会导致项目的可维护性降低。
  • 市场占有率相对较低: 相比于 React 和 Angular,Vue 的市场占有率相对较低,这可能会影响一些开发者的选择。

React

官网: https://react.dev/

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

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

优点

  • 高效的虚拟 DOM:React 采用虚拟 DOM 技术,可以减少页面重绘的次数,提高页面渲染效率。
  • 组件化开发:React 采用组件化开发的思想,可以让开发者更好地组织和复用代码。
  • 单向数据流:React 采用单向数据流的架构,使得应用的状态变得可控和可预测。
  • 生态系统丰富:React 拥有庞大的生态系统,包括 Redux 状态管理、React Router 实现路由等等,可以帮助开发者更好地开发和维护应用。
  • 跨平台支持:React 还支持跨平台开发,可以用于构建 Web 应用、移动应用、桌面应用等多种平台。

缺点

  • 学习成本高: React 采用 JSX 语法,开发者需要掌握这种语法以及相关的工具和库,学习成本较高。
  • 生态系统庞杂:虽然 React 的生态系统丰富,但也存在一些庞杂的库和组件,选择合适的库和组件需要一定的技术水平和经验。
  • 组件化开发的限制:React 的组件化开发思想虽然提高了代码的复用性和可维护性,但也存在一些限制,如组件之间的通信、状态管理等,需要开发者花费一定的精力去解决。

Angular

官网:Angular

Angular 是 Google 在 2010 年发布的 AngularJS 的升级版,也称为 Angular 2。AngularJS 是由 Misko Hevery 和 Adam Abrons 在 2009 年创建的,最初被称为 “GetAngular”,并于 2010 年更名为AngularJS。

随着 AngularJS 的成功,Google 开始全面重构该框架,并于 2016 年发布了 Angular 2。目前,Angular 也是非常流行的前端框架之一。

优点

  • 完整的 MVC 框架:Angular 提供了一个完整的 MVC 框架,包括数据绑定、路由、依赖注入、指令等,这些功能可以帮助开发者更加方便地管理和维护代码。
  • 响应式编程:Angular 支持响应式编程,可以轻松处理异步数据流。这种编程方式可以提高代码的可读性、可维护性和可测试性。
  • TypeScript 支持:Angular 基于 TypeScript,提供了更好的类型检查、代码提示、重构等功能,可以降低代码出错的风险,同时提高开发效率。
  • 适用于大型应用:Angular 适用于构建大型、复杂的 Web 应用,可以帮助开发者更好地组织代码和管理模块。

缺点

  • 学习成本高:由于 Angular 提供了完整的 MVC 框架,学习成本相对较高,需要掌握的知识点较多,对于初学者来说可能会有一定的难度。
  • 性能问题:由于 Angular 提供了较多的功能和依赖,有时会导致性能问题。开发者需要谨慎使用依赖注入、数据绑定等功能,以避免影响应用的性能。
  • 版本升级问题:Angular 的版本升级较为频繁,升级过程中可能会导致一些兼容性问题。这需要开发者花费一定的时间和精力去适应新的版本。

jQuery

jQuery是 2006 年推出的最初的前端框架之一。不管它的发布日期如何,让它与众不同的是它在当今科技生态圈中的重要性。 jQuery 不仅易于使用,而且还减少了编写广泛的 JavaScript 代码的需求。基本上,jQuery 用于在前端操作DOM 和 CSS 操作,并增强网站的交互性和功能。

该框架的最新开发允许开发人员使用其基于 HTML5 的 UI 方案 - jQuery Mobile 创建本地移动应用程序。 此外,jQuery 框架对浏览器友好,并支持您打算使用的浏览器。

一些旧的网站,依然使用此jQuery。

Svelte

官网:https://svelte.dev
中文官网:https://www.sveltejs.cn / https://www.svelte.cn/

Svelte 是一种全新的构建用户界面的方法。传统框架如 React 和 Vue 在浏览器中需要做大量的工作,而 Svelte 将这些工作放到构建应用程序的编译阶段来处理。

与使用虚拟(virtual)DOM 差异对比不同。Svelte 编写的代码在应用程序的状态更改时就能像做外科手术一样更新 DOM。

Alpine

官网:https://alpinejs.dev
中文官网:https://www.alpinejs.cn

Alpine.js 通过很低的成本提供了与 Vue 或 React 这类大型框架相近的响应式和声明式特性。

你可以继续操作 DOM,并在需要的时候使用 Alpine.js。

可以理解为 JavaScript 版本的 Tailwind。

备注:Alpine.js 的语法几乎完全借用自 Vue (并用 Angular 的语法做了些扩展)。在此由衷感谢他们对 Web 世界的贡献。

实例

<div x-data="{ open: false }">
    <button @click="open = true">Open Dropdown</button>

    <ul
        x-show="open"
        @click.away="open = false"
    >
        Dropdown Body
    </ul>
</div>

Preact

官网:https://preactjs.com

React 的 3kb 轻量化方案,拥有同样的 ES6 API。具有体积小、高性能、轻量 & 可嵌入、生态系统兼容等特点。

Preact是一个 JavaScript 库,它将自己定义为包含类似 ES6 API 的 React 的最快 3KB 替代品。Preact 提供了除了 DOM 之外的最小可能的虚拟 DOM 抽象。

它在稳定的平台特性和功能上与其他可用的前端和 UI 库一起开发。Preact 体积小,但速度不受影响,可以开发复杂的动态 Web 应用程序。

实例

import { h, render, Component } from 'preact';

class App extends Component {
  // Initialise our state. For now we only store the input value
  state = { value: '' }

  onInput = ev => {
    // This will schedule a state update. Once updated the component
    // will automatically re-render itself.
    this.setState({ value: ev.target.value });
  }

  render() {
    return (
      <div>
        <h1>Hello, world!</h1>
        <form>
          <input type="text" value={this.state.value} onInput={this.onInput} />
          <button type="submit">Update</button>
        </form>
      </div>
    );
  }
}

render(<App />, document.getElementById("app"));

LitElement

官网:https://lit.dev

LitElement 是一个简单的框架,用于构建快速、轻量级的 Web 组件。它提供反应状态、作用域样式和一个小巧、快速且富有表现力的声明性模板系统。

实例

import { LitElement, html, property, customElement } from 'lit-element';

@customElement('simple-greeting')
export class SimpleGreeting extends LitElement {
  @property() name = 'World';

  render() {
    return html`<p>Hello, ${this.name}!</p>`;
  }
}
<simple-greeting name="Everyone"></simple-greeting>

为什么使用LitElement

  • 令人愉快的声明: Lit-element简单,熟悉的开发模型使构建web组件变得前所未有的简单。以声明的方式表达UI,作为状态的函数。不用学习web-components语言,可以在模版中使用javascript的全部功能。element元素更改时会自动更新
  • 快而轻: 无论是在哪里工作的人,都会欣赏Lit-element的速度非常快。它使用lit-html定义和呈现html只会重新刷新组件样式动态变更部分
  • 无缝互操作: Lit-element遵循web组件标准。因此组件将适用于任何框架。Lit-element使用自定义元素轻松包含在网页中。使用shadow DOM进行封装。

Stimulus

官网:https://stimulus.hotwired.dev

Stimulus 是一个轻量级前端框架。这个框架通过 data-contoller data-target data-action 等属性,把 HTML 元素和 JavaScript 行为绑定,Stimulus 本身不处理 HTML 渲染,而是为已渲染的 HTML 添加行为。

Ember

官网:https://emberjs.com

Ember.js 是一个开源的免费 JavaScript 客户端框架,用于开发 Web 应用程序。使用模型-视图-控制器(MVC)模式。该框架提供通用数据绑定,基于网址驱动的方法用于构建不同应用,重点放在可扩展性上。

Emberjs是 2011 年开发的基于组件的框架。它呈现双向数据绑定,类似于 Angular。它旨在无可挑剔地管理对当代技术不断增长的需求。 您可以使用 Ember.js 构建多方面的 Web 和移动应用程序,并期望其有效的设计能够处理这些问题。然而,Ember 的学习曲线是它为数不多的缺陷之一。由于其传统和刚性的结构,该框架是最具挑战性的 Web UI 框架之一。 由于相对较新且未经探索,它的开发者社区是微不足道的。任何人只要不拘泥于花时间学习它的知识,就可以学习它。

当然,还有很多框架,比如:Semantic-UI、Backbone.js、Foundation等等。

最好的前端框架

谈到最好的前端框架,我们可以确定市场是多种多样的。更重要的是,UI 开发人员有机会从顶级创新者中进行选择。

Angular、Vue.js 和 React 等 前端框架已经在市场上占据了最高位置。

这些框架得到了社区的大力支持,并因其独特的灵活性和特性而被选中。

参考文档

  • https://baijiahao.baidu.com/s?id=1719221861793933665&wfr=spider&for=pc
  • https://zhuanlan.zhihu.com/p/76463271
  • https://baijiahao.baidu.com/s?id=1728185890869092949&wfr=spider&for=pc

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

取余,取模

目录 一&#xff1a;取整方式 1&#xff1a;向0取整 --- trunc取整函数 2.向-∞取整 --- floor&#xff08;地板&#xff09;函数 3.向∞取整 --- ceil函数 4.四舍五入取整 --- round 函数 5.四种取整方式的对比 二&#xff1a;取模 1.引入 2.取模与取余等价&#xff1f; 一&a…

JavaScript实现通过表格方式显示三角形的代码

以下为实现通过表格方式显示三角形的程序代码和运行截图 目录 前言 一、通过表格方式显示三角形 1.1 运行流程及思想 1.2 代码段 1.3 JavaScript语句代码 1.4 运行截图 前言 1.若有选择&#xff0c;您可以在目录里进行快速查找&#xff1b; 2.本博文代码可以根据题目要…

5.python列表

文章目录 一、什么是列表二、列表的表示方法三 、列表元素的索引四、访问列表元素五、修改列表元素直接赋值 六、添加列表元素6.1 方法append()6.2 方法insert() 七、删除列表元素7.1 语句del7.2方法pop()7.3方法remove() 八、组织列表8.1倒着打印列表8.2确定列表长度8.3 列表排…

【机器学习】 - 作业5: 基于Kmeans算法的AAAI会议论文聚类分析

课程链接: 清华大学驭风计划 代码仓库&#xff1a;Victor94-king/MachineLearning: MachineLearning basic introduction (github.com) 驭风计划是由清华大学老师教授的&#xff0c;其分为四门课&#xff0c;包括: 机器学习(张敏教授) &#xff0c; 深度学习(胡晓林教授), 计算…

HC-05蓝牙模块的使用

我最近刚刚开始学习嵌入式&#xff0c;在第一次使用蓝牙模块HC-05的时候遇到了很多问题&#xff0c; 甚至连接线都不会&#xff0c;因此下面我会十分详细地介绍我一步一步探索的步骤&#xff0c;直到完成使用手机APP和51单片机收发数据。 调试步骤 首先&#xff0c;我们需要明…

2023开放原子全球开源峰会分论坛即将来袭,Pick你最关注的峰会话题!

2023开放原子全球开源峰会即将开启 二十余场分论坛主题重磅首发 聚焦全球开源发展最新动向 前沿技术、行业实践、开源项目与治理等 多场知识盛宴等您来享 为更好地了解大家的参与意向 分论坛投票今天正式启动&#xff01; 投票时间&#xff1a;5月19-26日 长按识别二维码 …

MFC 给对话框添加图片背景

在windows开发当中做界面的主要技术之一就是使用MFC&#xff0c;通常我们看到的QQ,360,暴风影音这些漂亮的界面都可以用MFC来实现。今天我们来说一下如何用MFC美化对话框&#xff0c;默认情况下&#xff0c;对话框的背景如下&#xff1a; 那么&#xff0c;我们如何将它的背景变…

【Servlet 基础】

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔&#x1f93a;&#x1f93a;&#x1f93a; 目录 1. 什么是Servlet&#xff1f; 2. 第一个Serv…

微软 LoRA| 使用万分之一的参数微调你的GPT3模型

一、概述 title&#xff1a;LORA: LOW-RANK ADAPTATION OF LARGE LAN- GUAGE MODELS 论文地址&#xff1a;https://arxiv.org/abs/2106.09685 代码&#xff1a;GitHub - microsoft/LoRA: Code for loralib, an implementation of "LoRA: Low-Rank Adaptation of Large …

课时6—死锁(二)

一、死锁的避免 避免死锁同样属于事先预防策略&#xff0c;是在资源动态分配过程中&#xff0c;防止系统进入不安全状态&#xff0c;以避免发生死锁。 1、系统安全状态 在避免死锁方法中&#xff0c;把系统的状态分为安全状态和不安全状态。当系统处于安全状态时可避免发生死…

Android UI开发之多样式富文本的简洁实现

多样式富文本的简洁实现 原文链接&#xff1a;Android UI开发之多样式富文本的简洁实现 AppendableStyleString 允许你快速构建多种样式文字。 特性 支持对于同一个字符串设置多种样式。支持文字和图片。提供默认样式。采用 DSL 确保更清晰的样式作用范围 快速开始 下面的…

【事务失效】十种常见场景

前提 大多数Spring Boot项目只需要在方法上标记Transactional注解&#xff0c;即可一键开启方法的事务性配置。 但是&#xff0c;事务如果没有被正确出&#xff0c;很有可能会导致事务的失效&#xff0c;避免因为事务处理不当导致业务逻辑产生大量偶发性BUG 事务的传播类型 …

JDK8-17的特性发生了哪些变化

JDK8-17的特性发生了哪些变化 垃圾回收器Java交互式编程接口定义扩展String底层结构变更of 创建不可变序列HTTP 2 协议接口引入 var 关键字字符串增强lambda 表达式类型推导switch 增强支持文本块定义instanceof 模式匹配引入record 关键字新增密封类的定义switch二度加强模块…

栈及其实现

目录 一&#xff1a;栈 1.栈的概念和结构 2.栈的实现 <1>.初始化栈 <2>.入栈 <3>.出栈 <4>:获取栈顶元素 <5>.获取栈中有效元素个数 <6>.销毁栈 <7>.示例 二&#xff1a;栈的完整代码 一&#xff1a;栈 1.栈的概念和结构 …

Origin中log2的计算,设置以2为底的log坐标

使用高中的换底公式即可&#xff0c;把2的底换成10的底计算 ![在这里插入图片描述](https://img-blog.csdnimg.cn/5747fdbd2b5c43f095d716092fd17124.png

模式介绍和基本管理

模式介绍&#xff1a; 用户的模式(SCHEMA&#xff09;指的是用户账号拥有的对象集&#xff0c;在概念上可将其看作是包含表、 视图、索引和权限定义的对象。在 DM 中&#xff0c;一个用户可以创建多个模式&#xff0c;一个模式中的对象 &#xff08;表、视图等&#xff09;可以…

【深度学习】- 作业2: MNIST手写数字识别

课程链接: 清华大学驭风计划 代码仓库&#xff1a;Victor94-king/MachineLearning: MachineLearning basic introduction (github.com) 驭风计划是由清华大学老师教授的&#xff0c;其分为四门课&#xff0c;包括: 机器学习(张敏教授) &#xff0c; 深度学习(胡晓林教授), 计算…

stata软件基本操作

一、stata软件介绍 Stata是一个用于分析和管理数据的功能强大又小巧玲珑的实用统计分析软件&#xff0c;由美国计算机资源中心&#xff08;Computer Resource Center&#xff09;研制。它同时具有数据管理软件、统计分析软件、绘图软件、矩阵计算软件和程序语言的特点&#xf…

二叉树的相关知识

1.树概念及结构 1.1树的概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是因 为它看起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的。 有一个特殊的结点&#…

Typora Mac版本安装 Pandoc 导出文件为word格式(windows可通用)

今天在和一位商务小伙伴对接的时候&#xff0c;需要提供一份 word 版本的初稿。对于习惯了使用 支持 markdown 语法的 typora 来说&#xff0c;复制粘贴到 word 是不可能的。 可以通过 “导出” 功能&#xff0c;选择将当前文件导出为 “word” 格式&#xff0c;这个过程有个小…