本文档概述了 Tauri 应用程序开发的通用模式和最佳实践。它重点介绍了 Tauri API 示例应用程序中观察到的常见实现模式以及构建健壮 Tauri 应用程序的推荐方法。有关 API 示例应用程序本身的信息,请参阅 API 示例应用程序。
Tauri 应用程序中最常见的模式是用于初始化的构建器模式。此模式提供了一种干净、灵活的方式来配置应用程序,然后再启动它。
来源: examples/api/src-tauri/src/lib.rs37-159 examples/api/src-tauri/src/main.rs8-10
示例应用程序展示了使用几个关键组件的此模式
插件在过程早期进行注册
设置函数在应用程序运行时进行配置
命令已注册到调用处理程序
最后,构建并运行应用程序
来源: examples/api/src-tauri/src/lib.rs37-188
Tauri 使用两种主要的进程间通信模式:请求-响应交互的命令模式和发布-订阅通信的事件模式。
来源: examples/api/src/views/Communication.svelte20-47 examples/api/src-tauri/src/lib.rs147-152
来源: examples/api/src/views/Communication.svelte55-57 examples/api/src-tauri/src/lib.rs129-143
在 JavaScript 前端,命令的调用和事件的处理方式如下:
在 Rust 端,命令已注册,事件已处理
来源: examples/api/src/views/Communication.svelte1-70 examples/api/src-tauri/src/lib.rs129-143 examples/api/src-tauri/src/lib.rs147-152
Tauri 在 Rust 后端和 JavaScript 前端之间提供了跨平台的一致的窗口管理模式。
来源: examples/api/src/views/Window.svelte1-808 examples/api/src-tauri/src/lib.rs69-80
在 Rust 中,窗口是使用构建器模式创建的
在 JavaScript 中,可以创建额外的窗口
一种常见模式是响应式属性管理,其中窗口属性根据状态更改进行设置
事件侦听器已附加到窗口,以响应窗口状态更改
来源: examples/api/src/views/Window.svelte188-202 examples/api/src/views/Window.svelte224-230 examples/api/src/views/Window.svelte303-339
Tauri 的插件系统遵循一种一致的模式来扩展应用程序功能。
来源: examples/api/src-tauri/src/lib.rs43-48 examples/api/src-tauri/src/lib.rs86-93
插件在应用程序设置期间进行初始化和注册
可以通过扩展特征访问已注册的插件
来源: examples/api/src-tauri/src/lib.rs43-48 examples/api/src-tauri/src/lib.rs86-93
Tauri 为创建和管理菜单以及系统托盘图标建立了模式。
来源: examples/api/src/views/Menu.svelte1-50 examples/api/src/views/Tray.svelte1-80
菜单使用构建器模式创建
系统托盘图标遵循类似的配置模式
来源: examples/api/src/views/Menu.svelte13-36 examples/api/src/views/Tray.svelte19-31
Tauri 应用程序通常会为处理应用程序生命周期事件实现特定的模式。
来源: examples/api/src-tauri/src/lib.rs159-187
主应用程序运行循环处理各种生命周期事件
此模式允许在关键生命周期事件中对应用程序行为进行精细控制。
来源: examples/api/src-tauri/src/lib.rs159-187
对于流式传输数据或长时间通信,Tauri 提供了 Channel API 模式。
来源: examples/api/src/views/Communication.svelte49-53 examples/api/src-tauri/src/lib.rs86-93
在 JavaScript 中,通道被创建并提供给 Rust 命令
在 Rust 中,通道可用于双向通信
来源: examples/api/src/views/Communication.svelte49-53 examples/api/src-tauri/src/lib.rs86-93
Tauri 应用程序通常使用特性标志和配置文件来管理应用程序的功能。
Cargo.toml 配置文件展示了使用特性标志启用特定功能的模式
Tauri 鼓励使用条件编译来编写特定于平台的代码
此模式允许在保持 API 一致性的同时,清晰地分离特定于平台的功能。
来源: examples/api/src-tauri/Cargo.toml27-36 examples/api/src-tauri/src/lib.rs50-67
这些常见模式展示了构建 Tauri 应用程序的惯用方法,为创建结构良好、可维护的应用程序奠定了基础。遵循这些模式,开发者可以充分利用 Tauri 的强大功能,同时确保其应用程序与生态系统的最佳实践保持一致。