从前端调用Rust
从前端调用Rust
https://tauri.app/zh-cn/develop/calling-rust/
(额外补充) 默认模板
如果你是以 pnpm ts 模板方式创建,模板项目一般会自带一个这样的demo:
功能是前端提交表单到后端 -> 后端处理字符串返回前端 -> 前端显示处理过后的字符串
src/main.ts
// #region 项目模板 默认的表单功能、与后端沟通
import { invoke } from "@tauri-apps/api/core"
let greetInputEl: HTMLInputElement | null;
let greetMsgEl: HTMLElement | null;
async function greet() {
if (greetMsgEl && greetInputEl) {
// Learn more about Tauri commands at https://tauri.app/develop/calling-rust/
greetMsgEl.textContent = await invoke("greet", {
name: greetInputEl.value,
});
}
}
window.addEventListener("DOMContentLoaded", () => {
greetInputEl = document.querySelector("#greet-input");
greetMsgEl = document.querySelector("#greet-msg");
document.querySelector("#greet-form")?.addEventListener("submit", (e) => {
e.preventDefault()
greet()
})
})
// #endregion
src-tauri/src/lib.rs
// Learn more about Tauri commands at https://tauri.app/develop/calling-rust/
#[tauri::command]
fn greet(name: &str) -> String {
format!("Hello, {}! You've been greeted from Rust!", name)
}
#[cfg_attr(mobile, tauri::mobile_entry_point)]
pub fn run() {
tauri::Builder::default()
.plugin(tauri_plugin_global_shortcut::Builder::new().build())
.plugin(tauri_plugin_opener::init())
.invoke_handler(tauri::generate_handler![greet])
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
链接到当前文件 0
没有文件链接到当前文件