前端框架之争丨除了 Vue、Angular 和 React 还有谁与之争锋 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
GrapeCityChina
V2EX    推广

前端框架之争丨除了 Vue、Angular 和 React 还有谁与之争锋

  •  
  •   GrapeCityChina 2021-04-27 13:33:20 +08:00 1675 次点击
    这是一个创建于 1677 天前的主题,其中的信息可能已经有所发展或是发生改变。
    当今涌出的大量框架让人眼花缭乱不知如何选择,今天将比较五个最流行的前端 Javascript 框架,并作出概述,介绍其主要功能、工具、学习曲线及其他因素,帮助您做出衡量和选择。

    人气衡量标准
    据 2020 年 Javascript 调查状况通过框架使用情况确定框架流行程度。调查由 23,765 名受访者完成,结果如下:
    1. React:80 %
    2. Angular:56 %
    3. Vue.js:49 %
    4. Svelte:15 %
    5. PreACT:13 %
    此外还考虑了同一项调查中的“框架意识”:
    1. React:100 %
    2. Angular:100 %
    3. Vue.js:99 %
    4. Ember:88 %
    5. Svelte:86 %
    前端框架的定义
    出于本文的目的,文本将使用 Martin Fowler 提供的定义:
    库本质上是开发者可以调用的一组函数,通常组织成类。调用执行一些工作,并将控制权返回给客户端。
    框架体现抽象设计,内置更多行为,开发者通过子类化或插入自己的类将行为插入到框架中的不同位置使用,框架则调用这些点的代码。
    1. React

    于 2013 年发布,当今最流行的前端框架,拥有大量的开发人员和丰富的使用学习资源。
    React 相关工具很多,该团队提供的 CLI 用于便捷搭建一个新项目,工具扩展适用于 Chrome 和 Firefox 的。包含很多第三方软件包完成各种各样的任务(例如,路由,处理表单和动画),以及几个基于 React 的框架,例如 Next.js 和 Gatsby 。
    React 奉行“一次学习,随处编写”的理念。它可用 React Native 来为移动应用程序提供动力,用 Node 在服务器上进行渲染,有出色的 SEO 支持。
    主流思想认为 React 其太简单:它仅与应用程序的视图层有关,而其都交给了开发人员,对过高的自由度也褒贬不一。
    如果进行学习,学习曲线适度。React 鼓励开发者使用各种函数式编程范例(例如不变性和纯函数),需要开发人员在进行构建前需要对基本概念有基本了解
    总体来说,如果你对 react 的自由度满意,那么对于任何规模的数据驱动应用程序来说,都是佳选。
    2. Angular

    作为 Googl 在前端框提供的产品,于 10 年以 AngularJS (或 Angular 1 )的形式诞生,并立即受到热捧,主要由于开发人员能够构建现在称为单页应用程序的第一个框架。
    为解决性能问题和构建大型 Javascript 应用程序的挑战,16 年发布了 Angular 2 (如今仅是 Angular )。因不能简单迁移,因此 AngularJS 和 Angular 成为两个独立的框架。
    Angular 在前端框架占据了重要地位,它经过严格测试并投入生产使用,相关线上资源也十分丰富。
    不同于 react 仅处理视图层,Angular 提供了完整的解决方案构建单页客户端应用程序。Angular 组件实现双向数据绑定,用以侦听事件并在父组件和子组件之间同时更新值。模板是 HTML 的一部分,允许使用特殊语法来利用 Angular 的许多功能。TypeScript 是 Angular 开发的主要语言,因此该框架很适合企业及应用。
    从相关工具的角度来说,Angular 提供了高度完善的 CLI 来初始化,开发,构建和维护其应用程序,还有 Chrome 和 Firefox Dev Tools 扩展可用于调试 Angular 应用程序。
    但是从学习角度说,Angulard 的学习曲线最为陡峭。开发者需熟悉 TypeScript 才能开展工作,对于新手而言并不是最佳选择,更适合在团队中发挥作用。
    3. Vue.js

    注:统计数据适用于 Vue v2,版本 3 可用,须以安装 vue@next 。
    Vue 是一个用于构建用户界面和单页应用程序的模型-视图-视图模型( MVVM )前端框架。于 2014 年首次发布。
    现已被许多公司用于生产。可以称它为所有框架中最好的文档,其论坛是获得编码问题帮助的绝佳资源。Vue 在 PHP 界流行且是 Laravel 框架的一部分。
    Vue 的核心卖点是从头开始设计,可逐步采用,即 Vue 可增强常规网页功能或构件完善单页应用,同时 Anugular 可基于 HTML 可将属性绑定到基础数据模型,提供单个文件组件。
    从相关工具的完整程度来讲,一方面官方的 CLI 可以创建脚手架和开发 Vue 应用程序。不同于 React,Vue 提供了用于路由和状态管理的官方程序包,提供了一种便捷标准化处理方式,同时各种第三方工具和基于 Vue 的框架。
    但与其他框架相比入门门槛很低,适用于经验不足的开发人员。
    4. Svelte

    于 16 年发布,作为前端框架新成员,采用不同于其他框架的方法来构建 Web 应用程序。
    它避开虚拟 DOM 的概念,在构建期间将代码编译到小型原始 Javascript 模块中,开发者的应用程序状态更改该模块随之更新 DOM 。实现了体积小速度快的应用。
    学习曲线很低,但社区规模小,但是它已被用于生产,未来很有潜力。
    由于其成熟度较低只作为小型项目优选,但情况逐渐改变。SvelteKit 处于公开测试阶段,社区正在不断发展壮大。尽管 Svelte 目前年幼,但开发者应该注意关注。
    5. Ember.js

    最后介绍的 Ember,自前端框架问世就已经存在。在 11 年最初发布,但依旧在开发界流行:
    它的历史可以追溯到 React,Vue,Svelte 和其他所有公司之前。该框架从未出现在前端炒作的最前沿,但依旧稳步前进。合作对象包括 Qonto 和 CLARK,是 2020 年欧洲前 50 大金融科技公司中的两家。
    Ember 与 Angular 类似在应用程序开发中采用更多包含电池的方法,并提供构建现代前端 Javascript 应用程序所需的一切。遵循六个星期的发布周期且稳定性极好。
    从相关工具讲,相关工具众多,从 Ember CLI 到 Ember Inspector,还有许多可用的第三方库。
    其社区规模并不比其他流行框架社区,但它的成员参与度高,并且拥有论坛和 Discord 服务器,寻求编码问题的帮助很容易。
    如果开发者要进行学习的话,学习曲线中等至陡峭,对于初学者或较小的项目,Ember 可能不是最佳选择。它具有许多活动部件,并且在组织事物时没有提供很大的灵活性,合团队工作的一部分。

    结论
    本文对当今市场上五个最受欢迎的前端框架进行了比较,为开发者按照个人能力和项目需求进行选择时提供一个更好的参照。
    GrapeCityChina
        1
    GrapeCityChina  
    OP
       2021-04-27 14:24:29 +08:00
    阅读拓展:如果您难以在众多前端框架中做出选择,可以来了解对平台零依赖、可以嵌入系统的在线 excel,点击链接了解相关内容 https://www.grapecity.com.cn/
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2715 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 08:36 PVG 16:36 LAX 00:36 JFK 03:36
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86