cross-plateform 跨平台应用程序-02-有哪些主流技术栈?

跨平台系列

cross-plateform 跨平台应用程序-01-概览

cross-plateform 跨平台应用程序-02-有哪些主流技术栈?

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

cross-plateform 跨平台应用程序-04-React Native 介绍

cross-plateform 跨平台应用程序-05-Flutter 介绍

cross-plateform 跨平台应用程序-06-uni-app 介绍

cross-plateform 跨平台应用程序-07-Taro 介绍

cross-plateform 跨平台应用程序-08-Ionic 介绍

cross-plateform 跨平台应用程序-09-phonegap/Apache Cordova 介绍

cross-plateform 跨平台应用程序-10-naitvescript 介绍

跨平台开发中,有哪些主流技术栈?

跨平台开发中,有几种主流的技术栈可以帮助开发者构建能够在多个平台上运行的应用程序。

根据应用场景和需求的不同,以下是一些常见的技术栈,它们涵盖了移动、桌面、Web和游戏开发的多个平台。

一、移动端跨平台开发技术栈

1. React Native
  • 语言:JavaScript、TypeScript
  • 特点:React Native 是由 Facebook 推出的开源框架,允许使用 React 和 JavaScript 构建跨平台的移动应用(iOS 和 Android)。
  • 优势
    • 高度代码复用:大部分代码可以同时在 iOS 和 Android 上运行。
    • 接近原生性能:通过桥接方式调用原生组件,实现接近原生应用的性能。
    • 强大的生态系统:基于 React,拥有丰富的第三方库支持。
  • 劣势
    • 在复杂动画或需要高性能的场景下,性能可能会受到限制。
2. Flutter
  • 语言:Dart
  • 特点:Flutter 是由 Google 推出的开源跨平台框架,能够通过 Dart 语言编写代码,并生成适用于 iOS、Android、Web 和桌面的应用程序。
  • 优势
    • 优秀的 UI:提供丰富的内置 UI 组件,能够构建自定义的、精美的 UI。
    • 性能接近原生:使用自定义渲染引擎,具有接近原生的性能。
    • 跨平台支持:支持移动端、Web、桌面开发。
  • 劣势
    • Dart 语言相对小众,学习成本较高。
    • 应用体积较大。
3. Xamarin
  • 语言:C#
  • 特点:Xamarin 是微软推出的跨平台移动开发框架,使用 C# 和 .NET 技术栈,可以构建 iOS、Android 和 Windows 应用。
  • 优势
    • 充分利用 .NET 生态系统:C# 和 .NET 开发者可以快速上手。
    • 原生性能:可以访问原生 API,优化应用性能。
    • 代码复用:可以复用业务逻辑代码,同时编写少量的原生 UI 代码。
  • 劣势
    • 性能不如 React Native 和 Flutter,尤其在 UI 和动画处理方面。
    • 社区相对较小,第三方库支持较少。

二、桌面应用跨平台开发技术栈

1. Electron
  • 语言:JavaScript、HTML、CSS
  • 特点:Electron 是一个开源框架,允许使用 Web 技术(HTML、CSS、JavaScript)构建跨平台的桌面应用程序(Windows、macOS、Linux)。
  • 优势
    • Web 技术栈简单易学,开发者可以快速上手。
    • 能够访问操作系统底层功能,如文件系统、通知等。
    • 广泛的生态支持:许多桌面应用(如 VS Code、Slack)都是基于 Electron 构建的。
  • 劣势
    • 性能较差,资源占用高,尤其是内存和 CPU 消耗较大。
    • 应用体积较大。
2. Qt
  • 语言:C++,也支持 Python、JavaScript(QML)
  • 特点:Qt 是一个跨平台应用开发框架,广泛应用于桌面应用、嵌入式系统和移动设备上。
  • 优势
    • 高性能:采用 C++,性能优异。
    • 广泛的平台支持:支持 Windows、macOS、Linux、移动设备和嵌入式系统。
    • 丰富的 UI 组件:Qt 提供了大量的 UI 组件,方便快速构建界面。
  • 劣势
    • 学习曲线较陡,C++ 相对复杂。
    • 构建过程复杂,需要配置多平台的构建环境。

三、Web跨平台开发技术栈

1. Progressive Web Apps (PWA)
  • 语言:JavaScript、HTML、CSS
  • 特点:PWA 是一种 Web 应用开发技术,可以让 Web 应用像原生应用一样在移动设备和桌面设备上运行,具有安装、离线访问和推送通知等特性。
  • 优势
    • 轻量级:不需要安装,直接通过浏览器访问。
    • 性能好:在网络较差的情况下,仍然能保持较好的用户体验。
    • 跨平台:只需一次开发即可在任何支持现代浏览器的设备上运行。
  • 劣势
    • 功能有限:相比原生应用,PWA 在访问硬件和系统级功能方面存在限制。
    • 在 iOS 上支持不够完善:iOS 对 PWA 的支持较弱,部分功能无法实现。
2. Ionic
  • 语言:JavaScript、TypeScript、HTML、CSS
  • 特点:Ionic 是一个基于 Web 技术的移动应用开发框架,可以使用 HTML、CSS、JavaScript 构建跨平台的移动应用。
  • 优势
    • 基于 Web 技术栈,简单易用。
    • 跨平台支持:支持 iOS、Android 和 Web。
    • 丰富的 UI 组件:Ionic 提供了大量的预制组件,方便构建用户界面。
  • 劣势
    • 性能不如原生应用,特别是在需要大量动画和复杂交互的场景下。

四、游戏开发跨平台技术栈

1. Unity
  • 语言:C#
  • 特点:Unity 是一个广泛使用的游戏开发引擎,支持多平台游戏开发,包括移动设备、PC、控制台和 VR/AR 设备。
  • 优势
    • 强大的游戏引擎,支持2D、3D 游戏开发。
    • 跨平台支持广泛,能够生成多平台的应用程序。
    • 丰富的插件和社区支持。
  • 劣势
    • 复杂的游戏逻辑开发时,可能面临一定的性能挑战。
2. Unreal Engine
  • 语言:C++,Blueprint(可视化脚本)
  • 特点:Unreal Engine 是一款专业级的游戏引擎,广泛用于 AAA 级游戏的开发,支持跨平台游戏开发。
  • 优势
    • 强大的图形渲染能力,适合开发高性能的3D游戏。
    • 支持多个平台,包括 PC、控制台、移动设备、VR 和 AR 设备。
    • 开源引擎,允许开发者对引擎进行深度定制。
  • 劣势
    • 学习曲线较高,特别是 C++ 语言的复杂性。
    • 占用资源较多,尤其是对硬件要求较高。

五、跨平台服务端开发技术栈

1. Node.js
  • 语言:JavaScript、TypeScript
  • 特点:Node.js 是一个基于 JavaScript 的服务端开发环境,适用于构建跨平台的后端服务。
  • 优势
    • 使用单一语言 JavaScript 实现全栈开发。
    • 丰富的第三方模块和工具生态,易于扩展。
    • 高并发性能,适合构建实时应用,如聊天工具、游戏服务器。
  • 劣势
    • 由于单线程架构,CPU 密集型任务性能较差。
2. Go
  • 语言:Go(Golang)
  • 特点:Go 是 Google 开发的一门编译型语言,适合构建高性能的跨平台后端应用。
  • 优势
    • 高性能,编译后的二进制文件可以在多个操作系统上运行。
    • 原生支持并发编程,适合构建高并发的服务端应用。
    • 编译速度快,部署简单。
  • 劣势
    • 生态相对较小,第三方库支持不如 JavaScript 或 Java 等语言。

总结

跨平台开发的技术栈多种多样,选择适合的技术栈主要取决于应用的类型、开发团队的技术背景和项目的需求。以下是一些建议:

  • 移动应用:React Native 和 Flutter 是两大主流选择,适合开发跨平台移动应用。
  • 桌面应用:Electron 和 Qt 是常用的桌面跨平台开发框架。
  • Web应用:PWA 和 Ionic 可以帮助快速构建跨平台 Web 和移动应用。
  • 游戏开发:Unity 和 Unreal Engine 是跨平台游戏开发的首选。

每个技术栈都有各自的优缺点,在实际项目中需要根据具体需求做出平衡选择。

跨平台开发中,移动应用有哪些技术栈?

跨平台移动应用开发领域有许多技术栈可供选择,涵盖了不同的开发语言和框架。

这些技术栈帮助开发者用一套代码同时部署在多个平台(如 iOS 和 Android)。

以下是常见的跨平台移动应用开发技术栈:

1. React Native

  • 语言:JavaScript,TypeScript
  • 开发者:Facebook
  • 特点
    • 通过使用 React 框架编写 UI,React Native 允许开发者在 iOS 和 Android 上编写共享代码。
    • 利用 JavaScript 来驱动应用的业务逻辑,并通过桥接与原生组件进行通信,实现接近原生的性能和体验。
    • 庞大的生态系统和活跃的社区,有丰富的第三方组件库支持。
  • 优点
    • 跨平台开发效率高:一套代码适配多个平台。
    • 热重载:允许开发者在不重启应用的情况下查看代码修改后的效果。
    • 可与原生代码集成:React Native 允许开发者编写特定平台的原生代码。
  • 缺点
    • 性能对比原生应用稍逊一筹,特别是在复杂动画和图形渲染场景下。
    • 桥接原生组件时可能产生性能瓶颈。

2. Flutter

  • 语言:Dart
  • 开发者:Google
  • 特点
    • Flutter 提供了一个拥有自定义渲染引擎的框架,开发者可以用 Dart 语言编写跨平台应用,同时支持 iOS 和 Android。
    • Flutter 的自定义渲染引擎让其能够精确控制每个像素,提供与原生性能接近的体验。
    • 丰富的 UI 组件支持,尤其适合开发复杂的界面和动画。
  • 优点
    • 性能接近原生:使用自定义渲染引擎,避免了原生平台的桥接层。
    • 丰富的预制组件:Flutter 提供了大量的高性能 UI 组件。
    • 跨平台支持广泛:支持移动端、Web 和桌面开发。
  • 缺点
    • Dart 语言相对小众,开发者需要额外学习成本。
    • 应用程序包体积较大。

3. Xamarin

  • 语言:C#
  • 开发者:Microsoft
  • 特点
    • Xamarin 是基于 .NET 和 C# 的跨平台开发框架,允许开发者使用共享的业务逻辑和 UI 代码为 iOS、Android 和 Windows 构建应用。
    • Xamarin 使用 Mono 框架来执行跨平台代码,并提供了与原生平台 API 的绑定。
  • 优点
    • 充分利用 C# 和 .NET 生态:适合 .NET 开发者。
    • 能够访问原生 API,支持编写原生 UI 和业务逻辑代码。
    • 代码复用率高,业务逻辑代码可以在多个平台共享。
  • 缺点
    • 性能较 React Native 和 Flutter 稍弱,尤其是在 UI 和动画渲染上。
    • 生态系统和社区较小,第三方库支持相对较少。

4. Ionic

  • 语言:JavaScript、TypeScript、HTML、CSS
  • 开发者:Ionic团队
  • 特点
    • Ionic 是一个基于 Web 技术的框架,使用 HTML、CSS 和 JavaScript/TypeScript 来构建移动应用。
    • 通过与 Apache Cordova 或 Capacitor 配合,Ionic 可以将 Web 应用打包成原生移动应用。
    • 适合开发简单、界面相对标准的应用。
  • 优点
    • 基于 Web 技术栈,开发者容易上手。
    • 代码复用度高:Web 和移动端应用可以共享代码。
    • 丰富的预制 UI 组件,支持自定义主题。
  • 缺点
    • 性能相对较低,特别是在需要原生 UI 体验和复杂交互的场景下。
    • 依赖 WebView,资源消耗较大。

5. PhoneGap (Apache Cordova)

  • 语言:JavaScript、HTML、CSS
  • 开发者:Apache 基金会
  • 特点
    • Cordova(PhoneGap 的前身)是一种使用 HTML5、CSS 和 JavaScript 开发应用并将其打包成原生应用的解决方案,适用于 iOS 和 Android。
    • 通过调用原生插件,PhoneGap 可以访问设备的硬件功能,如相机、GPS 等。
  • 优点
    • Web 开发者可以快速上手,利用已有的前端技术栈。
    • 跨平台支持:一次开发可运行在多个平台。
    • 可通过插件访问原生设备功能。
  • 缺点
    • 性能较弱:基于 WebView,性能远不如原生应用,特别是在动画和图形处理方面。
    • 用户体验不如原生应用,UI 不完全符合平台规范。

6. NativeScript

  • 语言:JavaScript、TypeScript
  • 开发者:Progress Software
  • 特点
    • NativeScript 是一种开源框架,可以用 JavaScript 或 TypeScript 来编写跨平台的原生移动应用。它直接调用 iOS 和 Android 的原生 API。
    • 与 React Native 类似,它支持跨平台应用的开发,同时允许在需要时编写特定平台的原生代码。
  • 优点
    • 直接调用原生 API,无需 WebView,性能相对较好。
    • 支持原生 UI 组件,开发者可以轻松创建与平台一致的用户界面。
    • 支持 Vue.js 和 Angular 框架,适合有前端开发经验的团队。
  • 缺点
    • 社区和第三方插件库的支持相对较少。
    • 学习曲线较陡,特别是在与原生 API 的交互方面。

7. Kotlin Multiplatform Mobile (KMM)

  • 语言:Kotlin
  • 开发者:JetBrains
  • 特点
    • Kotlin Multiplatform Mobile 是一种基于 Kotlin 语言的跨平台开发工具,能够复用 iOS 和 Android 的业务逻辑代码,同时允许使用原生的 UI 组件。
    • KMM 允许开发者编写跨平台的业务逻辑代码,同时在每个平台上保持原生的用户界面。
  • 优点
    • Kotlin 是 Android 官方的首选语言,生态系统强大。
    • 业务逻辑代码复用率高,但 UI 仍然保持原生实现。
    • 与原生代码无缝集成,可以逐步采用,不必一开始就全面迁移。
  • 缺点
    • 需要为每个平台分别编写 UI,增加了前端的开发复杂性。
    • KMM 尚在发展中,生态相对不成熟。

8. Unity (用于游戏开发)

  • 语言:C#
  • 开发者:Unity Technologies
  • 特点
    • 虽然 Unity 主要用于游戏开发,但它也可以用于构建跨平台的移动应用程序,尤其是游戏应用。
    • Unity 提供了强大的 2D 和 3D 引擎,适合开发具有复杂动画、物理引擎或图形需求的应用。
  • 优点
    • 强大的游戏引擎,支持2D和3D开发。
    • 跨平台支持:Unity 可以导出应用到 iOS 和 Android。
    • 丰富的插件和工具支持,开发效率高。
  • 缺点
    • 对非游戏类应用来说,Unity 的体积和性能开销较大。
    • 相对复杂的开发环境,学习曲线较陡。

9. RhoMobile

  • 语言:Ruby、JavaScript、HTML
  • 开发者:Motorola Solutions
  • 特点
    • RhoMobile Suite 是一个开源的跨平台开发框架,支持编写 Ruby 和 HTML/CSS/JavaScript 来构建移动应用。
    • 它允许开发者在 iOS、Android、Windows Mobile 等多个平台上开发和部署应用。
  • 优点
    • 提供对多个平台的广泛支持,包括一些较为小众的平台。
    • 支持使用 Ruby 编写业务逻辑,较为灵活。
  • 缺点
    • 框架更新较慢,社区支持不如主流框架。

总结

移动应用的跨平台开发技术栈非常多样化,开发者可以根据应用的类型、团队的技术背景、应用性能要求等选择合适的技术栈。

中国比较流行的跨平台技术,类似于 uni-app,taro 之类的?

在中国,除了国际上常见的跨平台技术栈(如 React Native、Flutter 等),uni-appTaro 等本土框架也受到了广泛的欢迎。

这些框架特别适合在微信小程序、支付宝小程序等中国特有的生态中进行开发,同时也支持跨平台的移动应用和 Web 应用开发。

1. uni-app

  • 语言:JavaScript、Vue.js
  • 开发者:DCloud
  • 特点
    • uni-app 是基于 Vue.js 的跨平台应用开发框架,支持一次开发、部署到多个平台,包括 iOS、Android、微信小程序、支付宝小程序、百度小程序、字节跳动小程序、QQ 小程序、快应用、H5 和 App 等。
    • 框架基于 Vue,拥有强大的组件库和丰富的插件支持,简化了跨平台开发的复杂性。
    • uni-app 的优势在于其强大的生态支持和适配能力,特别是针对小程序和移动端市场。
  • 平台支持
    • iOS 和 Android 原生应用。
    • 各类小程序(微信、支付宝、百度、字节跳动、QQ)。
    • H5 网页应用。
    • 甚至支持 PC 桌面应用(通过 H5)。
  • 优点
    • 多端统一:通过一套代码生成多个平台的应用,极大提高开发效率。
    • Vue.js 易于上手:uni-app 基于 Vue.js,对于熟悉前端开发的人员非常友好,开发者可以快速构建界面和逻辑。
    • 插件市场:uni-app 提供了丰富的插件市场,常见的功能可以通过插件快速集成,大幅节省开发时间。
    • 灵活的跨平台支持:不仅支持移动端和 Web,还能适配微信等多个主流小程序平台。
  • 缺点
    • 对比 Flutter 和 React Native,复杂动画和自定义原生功能支持不够强大。
    • 在部分平台上可能存在性能差异,特别是涉及到原生组件时。

2. Taro

  • 语言:JavaScript、TypeScript、React
  • 开发者:京东
  • 特点
    • Taro 是京东开发的一款多端统一开发框架,基于 React 语法,允许开发者用一套代码运行在多个平台上。Taro 特别适合小程序的多端开发,如微信小程序、支付宝小程序、百度智能小程序、字节跳动小程序、QQ 小程序等,同时也支持 H5 和 React Native。
    • Taro 的设计初衷是为了解决多平台小程序的开发复杂度,提供一种通用的开发体验。
  • 平台支持
    • 微信、支付宝、百度、字节跳动、QQ 小程序。
    • H5 网页应用。
    • React Native 支持 iOS 和 Android 原生应用。
  • 优点
    • React 生态:Taro 基于 React 生态,拥有丰富的组件和工具链,开发体验优秀。
    • 多端支持:特别适合开发小程序,几乎涵盖了中国主流的小程序平台,并支持 H5 和 React Native。
    • TypeScript 支持:Taro 支持 TypeScript,可以提升代码的可维护性和开发效率。
    • 社区活跃:Taro 由京东维护,社区相对活跃,遇到问题时容易找到解决方案。
  • 缺点
    • 相比 Flutter 和 uni-app,Taro 在一些较小平台或框架之外的场景(如快应用)支持有限。
    • 性能方面可能不如原生开发,特别是在高频交互或复杂界面的情况下。

3. WePY

  • 语言:JavaScript、TypeScript
  • 开发者:第三方开源项目
  • 特点
    • WePY 是一个针对微信小程序的框架,类似于 Vue.js,旨在简化小程序的开发流程。它通过组件化和模块化的方式,使小程序的开发体验更加类似于 Web 前端开发。
    • WePY 是专注于微信小程序的框架,开发者可以使用类似于 Vue 的语法和功能来构建小程序。
  • 平台支持
    • 微信小程序。
  • 优点
    • 与 Vue.js 语法相似:对于前端开发者来说,学习成本较低。
    • 提高小程序开发效率:通过提供生命周期、模块化、组件化的特性,使得小程序的开发更加高效、代码更加可维护。
  • 缺点
    • WePY 的跨平台支持不如 uni-app 或 Taro 广泛,主要专注于微信小程序。
    • 社区支持和生态相对较小。

4. MPVue

  • 语言:JavaScript、Vue.js
  • 开发者:美团
  • 特点
    • MPVue 是美团点评开源的基于 Vue.js 的小程序开发框架,开发者可以使用 Vue.js 来开发微信小程序。
    • 与 WePY 类似,MPVue 通过引入 Vue.js 的开发模式,使得小程序的开发更加组件化、模块化。
  • 平台支持
    • 微信小程序。
  • 优点
    • Vue.js 支持:开发体验与 Vue.js 一致,易于上手。
    • 模块化和组件化:使小程序的开发更加结构化、规范化,便于维护和扩展。
  • 缺点
    • 框架更新较慢,开发者社区的活跃度不如 uni-app 和 Taro。
    • 主要专注于微信小程序,跨平台支持有限。

5. QuickApp (快应用)

  • 语言:JavaScript、HTML、CSS
  • 开发者:华为、OPPO、小米等手机厂商联盟
  • 特点
    • 快应用 是由国内的手机厂商(如华为、OPPO、小米等)推出的轻量级应用开发框架,旨在提供与原生应用类似的体验,但无需下载安装即可运行。
    • 快应用特别适用于中国市场的安卓设备,具有较快的启动速度和流畅的用户体验。
  • 平台支持
    • 主要支持安卓设备,尤其是华为、OPPO、小米等国内主流厂商的手机。
  • 优点
    • 无需安装:用户无需下载安装,能够快速体验应用。
    • 原生性能:快应用提供了接近原生的性能表现,特别是在启动速度和响应时间方面。
    • 厂商支持:快应用得到了多个国内手机厂商的支持,生态相对稳固。
  • 缺点
    • 只支持安卓设备,且主要针对国内市场。
    • 开发者需要适应其特定的生态环境,跨平台支持较为有限。

总结

在中国的跨平台开发领域,uni-appTaro 是最受欢迎的框架,尤其是针对微信小程序、支付宝小程序等本地平台时。

以下是一些典型的应用场景及推荐:

  • 多平台小程序开发:Taro 和 uni-app 是非常合适的选择,它们支持多种小程序平台,并且能够轻松集成移动端和 Web 开发。
  • 移动应用开发:uni-app 提供了更广泛的支持,能够同时适配小程序和原生 App。
  • 微信小程序专注开发:WePY 和 MPVue 是专门为微信小程序优化的框架,适合针对性较强的项目。
  • 国内安卓设备专用应用:快应用适合针对中国市场的安卓设备,提供更快的体验和轻量级的解决方案。

跨平台技术栈的对比表格

以下是针对上述跨平台移动开发技术栈的详细对比表格:

技术栈语言开发者支持平台UI框架优点缺点适用场景
React NativeJavaScript、TypeScriptFacebookiOS、AndroidReact近原生性能,广泛使用,社区活跃,支持原生代码集成,跨平台支持强性能不如原生,特别是复杂动画和图形渲染场景高性能需求的移动应用开发
FlutterDartGoogleiOS、Android、Web、桌面自定义UI引擎性能接近原生,丰富的UI组件,跨平台支持广泛,适合复杂UI和动画开发Dart语言学习成本较高,应用程序包体积较大复杂UI/动画开发,移动端、Web、桌面跨平台应用
XamarinC#MicrosoftiOS、Android、Windows原生UI.NET生态,支持原生API绑定,业务逻辑代码复用率高性能稍弱于React Native和Flutter,社区较小,第三方库支持有限.NET生态下的移动应用开发,跨平台业务逻辑复用
IonicJavaScript、TypeScript、HTMLIonic团队iOS、Android、Web基于Web技术的UIWeb开发者易上手,丰富的预制UI组件,适合Web与移动端共享代码性能较低,依赖WebView,复杂交互不如原生简单应用,Web和移动端共享代码的场景
PhoneGap (Cordova)JavaScript、HTML、CSSApache基金会iOS、Android、Windows基于Web技术的UI快速上手,跨平台支持广泛,插件支持设备硬件访问性能不佳,基于WebView,复杂UI和交互表现较弱简单跨平台应用开发,快速原型
NativeScriptJavaScript、TypeScriptProgress SoftwareiOS、Android原生UI直接调用原生API,无需WebView,性能较好,支持Vue.js和Angular社区和插件支持较少,学习曲线较陡对原生API和性能要求较高的跨平台移动应用开发
Kotlin Multiplatform Mobile (KMM)KotlinJetBrainsiOS、Android原生UIKotlin语言强大,业务逻辑代码复用率高,支持与原生代码无缝集成UI需要为每个平台单独开发,生态不成熟Kotlin开发者,业务逻辑复用,原生UI开发场景
UnityC#Unity TechnologiesiOS、Android、Web、Windows、Mac、游戏主机游戏引擎的UI框架强大的游戏引擎,支持2D/3D开发,跨平台广泛非游戏应用包体积大,性能开销高游戏开发和需要复杂3D渲染的应用开发
uni-appJavaScript、Vue.jsDCloudiOS、Android、Web、小程序、快应用Vue.js一次开发多端运行,基于Vue.js开发体验好,插件市场丰富,支持小程序和原生App性能比Flutter和React Native稍差,原生功能支持有限移动端、小程序、Web多平台统一开发
TaroJavaScript、TypeScript、React京东iOS、Android、小程序、Web、React NativeReactReact 生态,支持小程序和React Native,TypeScript 支持,适合多端统一开发支持的跨平台较 uni-app 少,复杂UI性能不及Flutter多平台小程序开发,React 生态下的移动和Web应用
WePYJavaScript、TypeScript开源项目微信小程序类似Vue的组件化UI类似Vue的开发模式,开发者易上手,适合小程序开发仅支持微信小程序,跨平台能力有限专注于微信小程序的项目
MPVueJavaScript、Vue.js美团微信小程序Vue.js基于Vue.js,组件化、模块化开发,小程序开发效率高仅支持微信小程序,更新较慢微信小程序的Vue.js开发
QuickApp (快应用)JavaScript、HTML、CSS华为、OPPO、小米等安卓设备(国内手机厂商联盟)原生UI无需安装即可运行,启动速度快,接近原生性能仅支持安卓,针对中国市场,跨平台能力弱国内安卓设备上的轻量级应用

总结:

  • 性能和复杂性需求较高的应用:选择 FlutterReact Native
  • 有.NET生态的开发者:推荐使用 Xamarin
  • 前端背景开发者:适合选择 uni-appTaroIonic
  • 游戏开发:推荐使用 Unity
  • 专注于小程序的开发:可选择 WePYMPVueTaro

每个技术栈都有其特定的优势和不足,开发者应根据项目的具体需求、团队的技术栈和目标平台进行选择。

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个错误通常是因为 Element Plus 字体文件的路径设置不正确所导致的。Element Plus 默认使用了一些字体文件,如 `element-icons.ttf`,这些字体文件需要正确引入才能正常显示 Element Plus 的图标。 在你的项目中,你需要检查以下几个方面: 1. Element Plus 字体文件的路径设置是否正确 在 `element-variables.scss` 文件中,你需要正确设置 `$--font-path` 变量,指定 Element Plus 字体文件的相对路径。例如: ```scss $--font-path: '../fonts'; ``` 这个路径应该是相对于 `element-variables.scss` 文件所在的路径。 2. 确保 Element Plus 字体文件存在 你需要确保 `element-icons.ttf` 字体文件存在于 `$--font-path` 变量所指定的路径中。如果字体文件不存在,你需要重新下载 Element Plus 并将字体文件拷贝到 `$--font-path` 变量所指定的路径中。 3. 检查 webpack 配置文件 如果你使用的是 Vue CLI 4.x 或以上版本,你需要检查 `vue.config.js` 文件中是否正确配置了字体文件的加载规则。你可以在 `vue.config.js` 文件中添加以下代码: ```javascript module.exports = { chainWebpack: config => { config.module .rule('fonts') .test(/\.(ttf|otf|eot|woff|woff2)$/) .use('url-loader') .loader('url-loader') .tap(options => { // 修改它的选项... options.fallback.options.name = 'fonts/[name].[hash:8].[ext]' return options }) } } ``` 这个代码会告诉 Webpack 在加载字体文件时使用 `url-loader`,并将字体文件命名为 `fonts/[name].[hash:8].[ext]`。 总之,要解决这个错误,你需要确保 Element Plus 字体文件的路径设置正确,字体文件存在,以及 webpack 配置文件正确设置了字体文件的加载规则。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值