当前位置: 首页 > news >正文

(3) rust和前端交互

Tauri + React 项目里,前端调用 Rust 的 #[tauri::command] 方法是通过 Tauri 提供的 invoke API 完成的。


1️⃣ Rust 端命令

#[tauri::command]
fn greet(name: &str) -> String {format!("Hello, {}! You've been greeted from Rust!", name)
}

lib.rs 注册:

tauri::Builder::default().invoke_handler(tauri::generate_handler![greet]).run(tauri::generate_context!()).expect("error while running tauri application");

2️⃣ React 前端调用

import React, { useState } from "react";
import { invoke } from "@tauri-apps/api/tauri";export default function GreetComponent() {const [name, setName] = useState("");const [message, setMessage] = useState("");async function handleGreet() {try {const result = await invoke<string>("greet", { name }); // 调用 Rust 命令setMessage(result);} catch (error) {console.error("调用 Rust greet 出错:", error);}}return (<div className="p-4"><inputtype="text"value={name}onChange={(e) => setName(e.target.value)}placeholder="输入名字"className="border p-1"/><button onClick={handleGreet} className="ml-2 px-4 py-1 bg-blue-500 text-white">打招呼</button>{message && <div className="mt-4 text-green-700">{message}</div>}</div>);
}

3️⃣ 说明

  1. invoke 第一个参数是 Rust 命令名greet)。

  2. 第二个参数是 命令参数(对象形式),对应 Rust 函数参数。

  3. invoke 返回一个 Promise,类型可用泛型指定(如 <string>)。

  4. Rust 的返回值会自动序列化为 JSON 传给前端。


这样,React 就能直接调用 Rust 的 greet 方法,前端显示返回值。


http://www.dtcms.com/a/391602.html

相关文章:

  • TextFlux重磅发布:告别复杂控制信号!多语种高保真场景文本编辑新时代
  • A股大盘数据-20250919分析
  • [x-cmd] X-CMD 的依赖非常精简,即装即用,无需额外配置
  • TM52F1363 电子元器件 海速芯 8位高性能微控制器(MCU)技术解析
  • 打工人日报#20250919
  • vue3学习日记(十九):组件实例详解
  • 【开题答辩全过程】以 基于python的订餐系统为例,包含答辩的问题和答案
  • 题解:CF2143E Make Good
  • 鸿蒙:使用worker实现多线程通信
  • Spring MVC 常用注解及代码示例
  • 【DMA】DMA入门:外设数据到内存,以串口DMA接收为例,解析底层实现
  • Java 中 super 和 this关键字总结
  • 我的创作纪念日 ----- 第512天
  • 【docker】删除镜像
  • 亚马逊 MWS 关键字 API 实战:关键字搜索商品列表接口深度解析与优化方案
  • 博文干货 | Pulsar 平均负载器(AvgShedder)
  • 【硬件】嘉立创专业版layout流程(一)
  • PyQt6之分组框
  • 深度剖析 IM 单聊与群聊架构设计
  • 农业自动化:技术重塑传统农业的新范式
  • Nginx 日志文件在哪?
  • 小程序开发者转多端应用app调整视频播放功能
  • 九、Java-注解
  • Java学习笔记——AI插件、新建模块、算数运算符类型、隐式转换、强制转换、自增自减运算符、赋值运算符、关系运算符、逻辑运算符、三元运算符
  • 【从零开始刷力扣006】leetcode206
  • FreeRTOS——介绍及移植过程
  • Day 07 Physics list-----以B1为例
  • 重读一次IS015765-2,记录对错误和异常处理的方式
  • Edge浏览器CSDN文章编辑时一按shift就乱了(Edge shift键)欧路翻译问题(按Shift翻译鼠标所在段落)
  • SpringIoc 基础练习 验证码