Tauri入门:js+rust 快速构建web app

Tauri入门:js+rust 快速构建web app

  • 什么是Tauri
  • electron?
  • 快速上手
    • 创建Tauri-app项目
      • 多种创建方式
      • 初始化工程
    • 工程结构

什么是Tauri

Tauri 是一个为所有主要桌面平台构建微小、速度极快的二进制文件的框架。开发人员可以集成任何可编译为 HTML、JS 和 CSS 的前端框架来构建用户界面。应用程序的后端是一个 Rust 源二进制文件,具有前端可以与之交互的 API。

Tauri 应用程序中的用户界面目前使用 tao作为macOS、Windows、Linux、Android 和 iOS 上的窗口处理库。为了渲染您的应用程序,Tauri 使WRY,这是一个为系统 Web 视图提供统一接口的库,利用 macOS 和 iOS 上的 WKWebView、Windows 上的 WebView2、Linux 上的 WebKitGTK和 Android 上的 Android System WebView

(译自Tauri github readme)

electron?

与electron不同,Tauri在不同平台上调用平台自身的前端库,而不是封装一个chromium内核(众所周知electron是这么干的)。这使得Tauri-app的安装包体积比electron-app小的多,同时得益于rust后端(可选,也可以使用js/ts后端),性能上也强于electron。
当然,作为electron的替代品,它还有很长的路要走。比如,部分开发者反映Tauri的跨平台兼容性没有electron那么好,同时作为新兴框架不可避免的会存在稳定性的短板,这是任何一个框架发展初期都在所难免的,但总体而言,Tauri对比electron优势还是相当明显的,未来可期!

快速上手

创建Tauri-app项目

多种创建方式

Tauri为不同平台提供了多种创建项目的方式。

  1. bash :
sh <(curl https://create.tauri.app/sh)
  1. Powershell :
irm https://create.tauri.app/ps | iex
  1. cargo :
cargo install create-tauri-app --locked
cargo create-tauri-app
  1. npm :
npm create tauri-app@latest
  1. yarn :
yarn create tauri-app
  1. pnpm :
pnpm create tauri-app

初始化工程

虽然创建方式有很多,但初始化的过程大体是相同的。
我们这里以linux平台的npm为例:
在这里插入图片描述
提示需要安装create-tauri-app包,输y或者直接回车。
等待create-tauri-app包安装完成…
在这里插入图片描述
按提示依次输入

  1. 项目名
  2. 后端语言(这里我们使用js)
  3. 包管理器(这里我们使用npm)
  4. 前端框架(这里我们使用react)
  5. UI flaver(js或ts,这里我们选择js)

(这些选项都可以根据你的喜好调整,只要你知道自己在干什么 😃)

然后根据提示,我们cd到工程目录,运行npm install以安装依赖包。
稍作等待(可能会有点久),依赖安装完成后,我们执行

npm run tauri dev

等待编译完成。
然后我们就得到了一个tauri-app的demo。

在这里插入图片描述

我们到工程的src-tauri下修改一下tauri.conf.json的identifier项(默认值不能用于打包),比如我们改为com.my.calculator
执行

npm run tauri build

经过编译,我们就得到了这个demo的安装包。
在这里插入图片描述
执行打包后的AppImage文件正常打开demo,打包成功!
在这里插入图片描述

在这里插入图片描述

工程结构

project
	-> dist/					
	-> node_module/				npm管理的包
	-> package-lock.json
	-> README.md
	-> src-tauri/
	-> index.html
	-> package.json
	-> public/
	-> src/
	-> vite.config.js

这样初始化就完成了,之后根据需要进行逻辑实现即可。

  • 26
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Chatgpt学习资料项目资料 用于实战ChatgptAI技术 源代码 供参考(代码+使用说明) Chatgpt学习资料项目资料 用于实战ChatgptAI技术 源代码 供参考(代码+使用说明) Chatgpt学习资料项目资料 用于实战ChatgptAI技术 源代码 供参考(代码+使用说明) Chatgpt学习资料项目资料 用于实战ChatgptAI技术 源代码 供参考(代码+使用说明) Chatgpt学习资料项目资料 用于实战ChatgptAI技术 源代码 供参考(代码+使用说明) Chatgpt学习资料项目资料 用于实战ChatgptAI技术 源代码 供参考(代码+使用说明) Chatgpt学习资料项目资料 用于实战ChatgptAI技术 源代码 供参考(代码+使用说明) Chatgpt学习资料项目资料 用于实战ChatgptAI技术 源代码 供参考(代码+使用说明) Chatgpt学习资料项目资料 用于实战ChatgptAI技术 源代码 供参考(代码+使用说明) Chatgpt学习资料项目资料 用于实战ChatgptAI技术 源代码 供参考(代码+使用说明) Chatgpt学习资料项目资料 用于实战ChatgptAI技术 源代码 供参考(代码+使用说明) Chatgpt学习资料项目资料 用于实战ChatgptAI技术 源代码 供参考(代码+使用说明) Chatgpt学习资料项目资料 用于实战ChatgptAI技术 源代码 供参考(代码+使用说明) Chatgpt学习资料项目资料 用于实战ChatgptAI技术 源代码 供参考(代码+使用说明) Chatgpt学习资料项目资料 用于实战ChatgptAI技术 源代码 供参考(代码+使用说明) Chatgpt学习资料项目资料 用于实战ChatgptAI技术 源代码 供参考(代码+使用说明) Chatgpt学习资料项目资料 用于实战ChatgptAI技术 源代码 供参考(代码+使用说明) Chatgpt学习资料项目资料 用于实战ChatgptAI技术 源代码 供参考(代码+使用说明) Chatgpt学习资料项目资料 用于实战ChatgptAI技术 源代码 供参考(代码+使用说明) Chatgpt学习资料项目资料 用于实战ChatgptAI技术 源代码 供参考(代码+使用说明) Chatgpt学习资料项目资料 用于实战ChatgptAI技术 源代码 供参考(代码+使用说明) Chatgpt学习资料项目资料 用于实战ChatgptAI技术 源代码 供参考(代码+使用说明) Chatgpt学习资料项目资料 用于实战ChatgptAI技术 源代码 供参考(代码+使用说明) Chatgpt学习资料项目资料 用于实战ChatgptAI技术 源代码 供参考(代码+使用说明)
Tauri 中,`App::handle`、`tauri::Builder::default()` 和 `tauri::WindowBuilder::new` 是三个重要的 API,它们分别用于处理应用程序的事件、构建 Tauri 应用程序和创建窗口。 ### App::handle `App::handle` 方法用于处理 Tauri 应用程序的事件。Tauri 是一个基于 RustWeb 技术栈的框架,运行在基于 Chromium 内核的 WebView 中。`App::handle` 方法会监听应用程序的事件,例如启动、关闭、最小化、最大化等,并且可以根据这些事件来执行相应的操作。 以下是一个简单的示例,使用 `App::handle` 方法监听应用程序的启动事件,并在启动时打印一条消息: ```rust fn main() { tauri::Builder::default() .invoke_handler(tauri::generate_handler![my_custom_handler]) .run(tauri::generate_context!()) .expect("failed to run app"); } #[tauri::command] fn my_custom_handler() { println!("My Tauri app has started!"); } ``` ### tauri::Builder::default() `tauri::Builder::default()` 方法用于构建 Tauri 应用程序。在构建 Tauri 应用程序时,可以定义应用程序的窗口、菜单、打印机、文件选择器等属性。使用 `tauri::Builder::default()` 方法可以获取一个默认的构建器实例,你可以在此基础上进行进一步的配置。 以下是一个简单的示例,使用 `tauri::Builder::default()` 方法构建一个窗口: ```rust fn main() { tauri::Builder::default() .invoke_handler(tauri::generate_handler![my_custom_handler]) .run(tauri::generate_context!()) .expect("failed to run app"); } #[tauri::command] fn my_custom_handler() { let window = tauri::WindowBuilder::new() .title("My Tauri App") .build() .unwrap(); window.show().unwrap(); } ``` ### tauri::WindowBuilder::new `tauri::WindowBuilder::new` 方法用于创建窗口。在创建窗口时,可以定义窗口的标题、大小、位置、图标等属性。使用 `tauri::WindowBuilder::new` 方法可以获取一个默认的窗口构建器实例,你可以在此基础上进行进一步的配置。 以下是一个简单的示例,使用 `tauri::WindowBuilder::new` 方法创建一个窗口: ```rust fn main() { tauri::Builder::default() .invoke_handler(tauri::generate_handler![my_custom_handler]) .run(tauri::generate_context!()) .expect("failed to run app"); } #[tauri::command] fn my_custom_handler() { let window = tauri::WindowBuilder::new() .title("My Tauri App") .width(800) .height(600) .build() .unwrap(); window.show().unwrap(); } ``` 以上三个 API 是 Tauri 应用程序开发中的重要组成部分,通过它们可以构建 Tauri 应用程序,并且对应用程序的事件进行处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值