本文档介绍了 Tauri 框架的基础概念和构建块。理解这些核心概念对于高效开发 Tauri 应用程序至关重要。本页重点阐述了驱动 Tauri 应用程序的核心架构和机制,包括 Webview、IPC 系统、命令、事件以及其他基本组件。
有关具体实现的详细信息,请参阅 核心架构 页面。
Tauri 采用分层架构,通过 Rust 将 Web 技术与原生功能连接起来。
架构图:Tauri 的分层结构
来源:README.md12-18 ARCHITECTURE.md8-18
Tauri 应用程序由以下部分组成:
Webview 是 Tauri 应用程序的基础,它在原生窗口中渲染 Web 内容,而无需打包完整的浏览器。
图示:Tauri 中的 Webview
来源:README.md14-16 ARCHITECTURE.md83-86
Webview 的主要特点
进程间通信(IPC)系统是 Webview 中的 JavaScript 与后端中的 Rust 之间的桥梁。
图示:IPC 通信流程
来源:crates/tauri/src/ipc/channel.rs25-42 examples/api/src-tauri/src/lib.rs12-18
IPC 系统
命令是向 JavaScript 公开 Rust 函数的主要机制,允许前端代码调用后端函数。
图示:命令注册和调用
来源:examples/api/src-tauri/src/lib.rs146-152 crates/tauri-macros/src/command/handler.rs1-169
命令系统的主要方面
#[tauri::command] 宏在 Rust 中定义generate_handler! 宏向应用程序注册事件系统支持应用程序不同部分之间的双向消息传递,无需直接函数调用。
图示:事件通信流程
来源:examples/api/src-tauri/src/lib.rs129-143
事件系统提供:
通道提供 JavaScript 和 Rust 之间的流式通信机制,非常适合连续数据传输或长时间运行的操作。
图示:通道通信
来源:crates/tauri/src/ipc/channel.rs46-289 examples/api/src-tauri/src/lib.rs85-98
通道的主要特点
App 和 AppHandle 结构管理应用程序生命周期并提供对核心功能的访问。
图示:应用程序生命周期和组件
来源:examples/api/src-tauri/src/lib.rs37-159
App 和 AppHandle
Tauri 应用程序可以创建和管理多个窗口,每个窗口都有自己的 Webview 内容。
图示:窗口管理系统
来源:examples/api/src-tauri/src/lib.rs69-80 examples/api/src-tauri/src/lib.rs179-184
窗口管理中的关键概念
状态管理系统允许在应用程序的不同部分共享数据。
图示:Tauri 中的状态管理
来源:examples/api/src-tauri/src/lib.rs58 crates/tauri/src/ipc/channel.rs310-313
状态管理提供:
Tauri 包括一个全面的构建和打包系统,用于将应用程序打包分发。
图示:构建和打包过程
来源:README.md22-28 ARCHITECTURE.md166-178
构建和打包系统
tauri.conf.json 进行配置Tauri 的插件系统可以扩展功能并在应用程序之间共享可重用组件。
图示:插件架构
来源:examples/api/src-tauri/src/lib.rs42-48 crates/tauri/src/ipc/channel.rs330-337 ARCHITECTURE.md106-118
插件系统提供:
Tauri 使用命令标识符系统通过访问控制列表(ACL)来管理权限和安全。
图示:命令标识符系统
来源: crates/tauri-utils/src/acl/identifier.rs11-21 crates/tauri-macros/src/command/handler.rs92-141
命令标识符系统
core: 前缀plugin:name| 格式这些关键概念构成了 Tauri 应用程序的基础。理解这些组件如何协同工作对于使用 Tauri 构建有效的应用程序至关重要。
有关特定实现的更详细信息,请参阅 核心架构 文档中的相关部分。