Skip to content

前端框架介绍

前言

本文档的编写目的在于介绍本公司前端相关基础框架内容。

框架选型

Javascript框架

目前前端领域主流的JS框架有React、Vue、Angular。当比较React、Vue和Angular时,可以从以下几个关键方面进行比较:

  1. 学习曲线:

    • React: React的学习曲线相对较陡峭,需要对JavaScript和JSX语法有一定的了解。它使用组件化的开发模式,需要熟悉React的生命周期和状态管理等概念。
    • Vue: Vue的学习曲线相对较平缓,它的语法类似于传统的HTML和JavaScript,容易上手。Vue提供了易于理解和使用的API,使得构建复杂应用变得简单。
    • Angular: Angular的学习曲线相对较陡峭,它是一个全面的框架,需要熟悉它的许多概念和特性,如模块化、依赖注入和TypeScript语法等。
  2. 生态系统和社区支持:

    • React: React有一个庞大的生态系统和活跃的社区支持,有许多第三方库、工具和开发者社区可供选择。React也受到大型科技公司的广泛采用,有丰富的资源和文档可供学习和参考。
    • Vue: Vue虽然相对较年轻,但也拥有庞大的生态系统和活跃的社区支持。Vue的社区致力于提供高质量的插件、组件和教程,同时Vue也受到一些大型公司的认可和采用。
    • Angular: Angular是由Google维护的框架,有一个庞大的生态系统和强大的社区支持。Angular拥有丰富的官方文档和指南,以及大量的第三方库和插件可供使用。
  3. 性能和渲染效率:

    • React: React使用虚拟DOM来优化页面渲染,只更新需要更新的部分,提高了渲染效率。React还支持服务器端渲染,提供更好的性能和SEO优化。
    • Vue: Vue也使用虚拟DOM来提高渲染效率,类似于React。Vue还提供了异步渲染和懒加载等特性,使得应用程序在性能方面表现出色。
    • Angular: Angular使用了更复杂的变更检测机制,可能在某些情况下导致性能下降。但Angular提供了强大的优化工具和技巧,以减少应用程序的加载时间和提高性能。
  4. 社区支持和就业机会:

    • React: React拥有广泛的就业机会和需求,许多公司都在寻找React开发人员。React的社区庞大,有很多机会参与开源项目和社区贡献。
    • Vue: Vue在就业市场上的需求也在不断增长,越来越多的公司开始采用Vue开发前端应用程序。Vue的社区也越来越活跃,提供了很多学习和发展的机会。
    • Angular: Angular在企业级应用程序开发中非常流行,一些大型公司和项目使用Angular进行开发。因此,Angular开发人员在就业市场上也有很多机会。

总的来说,React、Vue和Angular都是优秀的前端框架,具有各自的优势和适用场景。选择哪个框架取决于项目需求、团队技能和个人偏好。

从市场普遍表现来看:

  • Vue在简单项目经济性占有绝对优势
  • React在适用性、持续性、可用性占有绝对优势。在复杂项目上经济性也占优势
  • Angular凭借完善的工具配套在大型复杂项目占据绝对优势

跨端框架

在React-Native推出引领APP跨端开发之后。伴随国内微信小程序的推出,进一步加剧了前端生态的割裂。市场对于前端跨端需求到达了前所未有的高度。许多项目出于敏捷、成本等考虑。都会在多端开发时采用跨端框架。尤其是国内小程序环境下。这里我们比对下主流的跨端框架:Tarouniapp

框架技术栈微信小程序H5App支付宝/百度/抖音小程序等
TaroReact/Vue
uni-appVue
mpvueVue

可以看到。Taro和Uniapp两个框架在市场主流适配度都非常完善。

Taro

Taro在App端使用的是React Native的渲染引擎,原生的UI体验较好。不过需要自己去搭建iOS和Android的环境,对于初学者来说。会是非常大的挑战。这也是劝退很多新手的原因。

并且Taro适用React开发。难度稍高。但Taro 3的出现,支持了React 和 Vue两种DSL,适合的人群会更多一点,并且对快应用的支持也更好。

uniapp

uniapp配合HbuildX开发工具。封装了很多业务逻辑。提供了强大的整合能力。尤其是对APP的封装。让开发无需花费太多精力即可开发、测试、上架APP。但是过度封装的方案也造成了debug困难。并不适合中大型项目。

美萌框架

经过综合比对以及实践总结。我们最终采用的方案是: Taro为主,uniapp为辅 的开发策略。即在客户对交付没有特殊要求的情况。优先采用Taro进行开发。对简单项目、开发能力稍弱、客户指定等情况的项目。使用uniapp开发

开发工具

分类说明备注
Vscode代码编辑器
WebStorm代码编辑器。相比vscode功能更全。同样也更臃肿。建议使用vscode
微信开发者工具微信小程序/公众号开发预览工具。一般只用作预览、构建
HBuildXuniapp配套开发工具。提供了很多内置支持。一般不建议使用。只在开发APP使用
Android Studio安卓App开发工具开发安卓APP必备
XcodeIOS APP开发工具开发IOS应用必备
DevEco Studio鸿蒙APP开发工具开发鸿蒙原生应用必备

通用环境

分类技术栈备注
操作系统Windows、MacOS
代码管理GIT
前端开发环境Node>= 14.x
包管理工具Yarn>= 1.x
<2.x
包管理工具PNPM>= 8.x
持续集成Jenkins发布管理工具

Taro环境

这里介绍一些Taro框架涉及技术明细

通用

  • React 18
  • Typescipt >= 4.x
  • jotai: 状态管理
  • webapck: 打包工具
  • babel: 代码编译
  • eslint: 代码规范检查
  • pnpm: 项目管理和包管理工具

后管技术选型

  • Antd & Antd Pro: 蚂蚁金服推出的后台管理系统组件库
  • 美萌自研业务组件库: Backend Pro
  • 自研框架插件: 权限插件、路由插件
  • 自研工具库: reqeust请求库、utils工具库等

C端技术选型

  • Taro >= 3.6
  • Taro 全家桶
  • 自研框架插件: 路由插件
  • 自研工具库: reqeust请求库、utils工具库等
  • 自研组件库: taro-design 、 taro-poster、taro-picker等

Uniapp框架

这里介绍一些uniapp框架涉及技术明细

通用

  • Vue 3.x
  • Typescipt >= 5.x
  • pinia: 状态管理
  • vite 5.x: 打包工具
  • babel: 代码编译
  • eslint: 代码规范检查
  • pnpm: 项目管理和包管理工具

后管技术选型

  • Antd-design-vue: antd-design风格的vue组件库
  • 美萌自研业务组件库: Backend Pro
  • 自研框架插件: 权限插件、路由插件
  • 自研工具库: reqeust请求库、utils工具库等

C端技术选型

  • uniapp
  • 自研框架插件: 路由插件
  • 自研工具库: reqeust请求库、utils工具库等
  • 自研组件库: mm-design 等

APP框架

我司APP支持 使用原生方式跨端方式H5组合 等方式进行开发交付

原生

原生方案采用

  • IOS 使用swift语言进行开发
  • Android 使用kotlin语言进行开发

该方案

优点

  • 使用原生。体验最好

缺点

  • 成本太高

跨端

跨端采用 React NativeTaro 结合的方式进行开发。采用了Taro整套技术方案同时使用ReactNative进行编译构建。该方案

优点

  • Taro整套技术栈。开发难度比纯RN要降低一半
  • 使用RN编译渲染原生组件。性能较好
  • 开发成本相比原生更低

缺点

  • RN对于有硬件交互和系统API交互较多的。能力稍显不足
  • 社区活跃度相比纯原生 有一定差距
H5组合

该方式采用 一级页面原生开发,二级页面嵌入webview 的模式进行开发。该方案

优点

  • 开发成本最低,项目开发周期快

缺点

  • jsBridge进行沟通、webveiw渲染 性能最差
  • 需要原生交互的内容。需要封装很多原生方法。后期维护成本高