Flutter、Electron、Tauri框架对比及Electron+Vue项目实战

06-01 1060阅读

Flutter、Electron、Tauri框架对比及Electron+Vue项目实战

随着移动互联网和桌面应用的快速发展,开发者们越来越倾向于使用跨平台框架来提高开发效率和降低成本。Flutter、Electron和Tauri作为当前最受欢迎的几种跨平台框架,各自拥有独特的优势和应用场景。本文旨在深入探讨这三种框架的特点、优缺点,并分享一个基于Electron+Vue的项目实战经验。

背景

XXXX团队:我们想在断网环境下通过 RuntimeAI 运行 Python 程序,给用户输出日志、执行结果等需求的桌面端程序。
我:好的,上菜。

三大框架对比

Flutter简介

Flutter是Google推出的开源UI软件开发工具包,用于构建在iOS、Android、Web和桌面端高质量的原生界面。Flutter的一大特点是其“一次编写,处处运行”的能力,极大地提高了开发效率。Flutter使用Dart语言,拥有丰富的组件库和良好的性能。

Electron简介

Electron是一个使用JavaScript、HTML和CSS构建桌面应用的框架,由GitHub开发。它允许开发者将Web技术用于桌面软件的开发,使得原本只能在网络浏览器中运行的应用能够被作为独立的桌面应用来分发和安装。Electron应用本质上是Chromium浏览器的变种,这意味着它相对较重,但开发速度快,易于上手。

Tauri简介

Tauri 是一个相对较新的框架,旨在提供一个安全、轻量级的平台,用于将Web技术包装成桌面应用。与Electron相比,Tauri的最大优势在于其对安全性的强调以及更小的应用体积。Tauri应用使用Rust语言进行系统调用,提供了更好的性能和更低的资源消耗。

特点 Flutter Electron Tauri
开发语言 Dart JavaScript, HTML, CSS JavaScript, HTML, CSS
跨平台 移动、Web和桌面应用开发 桌面应用开发 桌面应用开发
性能 高(Flutter直接编译到机器代码,减少了桥接层) 中(基于Chromium和Node.js,可能占用更多资源) 高(生成的应用体积小,性能优化)
用户界面 丰富的UI组件库,可高度自定义 使用Web技术构建UI,灵活 使用Web技术构建UI,灵活
应用体积 较大(包含Chromium和Node.js)
安全性 依赖于框架本身和开发实践 依赖于框架本身和开发实践,可能需要注意Web安全问题 高(Rust的安全性优势)
适用场景 适合需要高性能和高度定制UI的跨平台应用 适合希望快速将Web应用转为桌面应用的项目 适合对应用体积和性能有严格要求,注重安全的桌面应用开发
社区支持
GitHub Star 161k 111k 75.5k
数据对比

Flutter、Electron、Tauri框架对比及Electron+Vue项目实战

根据三大框架官方文档,安装了开发和构建依赖、配置环境变量和成功启动后,我将通过启动速度、目录结构、打包体积做真实对比。

统一开发IDE为 VS Code

  1. 启动速度:Electron > Tauri > Flutter

启动速度只做大概预估,因为跟机器性能、网速和Tauri是否有新的依赖需要更新有关。

  1. 目录结构:Electron 、Tauri > Flutter

Flutter、Electron、Tauri框架对比及Electron+Vue项目实战

  1. 打包体积:Flutter > Tauri > Electron

Flutter、Electron、Tauri框架对比及Electron+Vue项目实战

框架选择

基于以上对比数据,我选择Electron,理由是:

  1. 开发难度小
  2. 安装依赖方便
  3. 更加适合本次需求
  4. VS Code也是利用Electron开发
  5. 社区庞大

Electron+Vue3项目实战基础版)

如果安装 electron、electron-builder和打包出错。中心思想就是自己下载好所需依赖,放至对应目录下。

搭建Electron应用参考文章,部分需要做修改。

  1. 项目初始化

首先,按照 Vue 官网步骤创建一个Vite+Vue+Ts项目:

npm create vue@latest
cd my-project
code .
npm install
  1. 添加Electron依赖:
npm install electron vite-plugin-electron -D
  1. 修改package.json

dist-electron:vite-plugin-electron插件运行后,会将electron主进程文件编译到dist-electron/index.js

chcp 65001:解决中文乱码

去掉 “type”: “module”

"main": "dist-electron/index.js"
"scripts": {
   
  "dev": "chcp 65001 && vite"
  ...
}
  1. 配置vite.config.ts
import {
    fileURLToPath, URL } from 'node:url'
import {
    defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import electron from 'vite-plugin-electron'
export default defineConfig({
   
  plugins: [
    vue(),
    electron({
   
      entry: "electron/index.ts"
    })
  ]
})
  1. 创建 electron/index.ts 主进程文件
import {
    app, Br
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码