tauri和vue通信的問題解決方案示例詳解
vue在前端調(diào)用rust里的函數(shù)
之前用bery寫了個ui發(fā)現(xiàn)cpu占用挺高的 就試著用tauri寫一下發(fā)現(xiàn)性能還挺好的,記錄日志時候刷新幾萬條也不卡
前端使用的是vue在前端調(diào)用rust里的函數(shù)可以在methods里面添加
async increment() {
let a = await invoke("set_filter", {"filter":"filter_str"} );
},在rust里面添加
#[tauri::command]
fn set_filter(_window: tauri::Window, filter: &str) -> bool{
return true;
}在rust中通知vue需要發(fā)消息
在vue中先監(jiān)聽消息可以在mounted中調(diào)用
async mounted(){
this.unlisten = listen('udp_log', this.handleEventRecv);
},注銷時候調(diào)用一下listen返回的值就行了
unmounted(){
this.unlisten.then(F=>F());
}在rust中發(fā)消息時候有可能是在單獨一個線程里發(fā)的可以使用
后臺進(jìn)程使用
lazy_static!{
static ref G_UDP_SER: Mutex<UdpNetworkPlugin> = Mutex::new(UdpNetworkPlugin::new());
}創(chuàng)建一個全局變量,先不啟動后臺進(jìn)程 ,啟動后臺進(jìn)程等app啟動獲取到可以發(fā)消息的句柄再啟動,啟動app可以使用
fn main() {
let app = tauri::Builder::default()
.invoke_handler(tauri::generate_handler![greet, set_filter, get_new_log])
.build(tauri::generate_context!())
.expect("init app err");
//.run(tauri::generate_context!())
//.expect("error while running tauri application");
//start_timer(win_app);
{
let win_app = app.get_window("main").unwrap();
let mut udp_ser = G_UDP_SER.lock().unwrap();
udp_ser.start_thread(win_app);
}
app.run(|_,_| {});
}先構(gòu)造一個app 先不run 就能用app獲取到發(fā)消息的句柄
發(fā)消息使用
win.emit("udp_log", text.to_string());
這個只有這個win move到后臺線程
以上就是tauri和vue通信的問題解決方案示例詳解的詳細(xì)內(nèi)容,更多關(guān)于tauri vue通信的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
利用WebStorm創(chuàng)建一個Vue項目的完整步驟
WebStorm是一個非常適合學(xué)習(xí)和開發(fā)Vue項目的集成開發(fā)環(huán)境,下面這篇文章主要給大家介紹了關(guān)于利用WebStorm創(chuàng)建一個Vue項目的完整步驟,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2024-06-06
淺析Vue.js中v-bind v-model的使用和區(qū)別
v-model 指令在表單控件元素上創(chuàng)建雙向數(shù)據(jù)綁定,所謂雙向綁定。這篇文章主要介紹了Vue.js中v-bind v-model的使用和區(qū)別,需要的朋友可以參考下2018-12-12
vue中el-autocomplete與el-select的異同
本文主要介紹了vue中el-autocomplete與el-select的異同,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05
Vue?3.0?v-for中的Ref數(shù)組用法小結(jié)
在?Vue?2?中,在?v-for?里使用的?ref?attribute會用ref?數(shù)組填充相應(yīng)的?$refs?property,本文給大家介紹Vue?3.0?v-for中的Ref數(shù)組的相關(guān)知識,感興趣的朋友一起看看吧2023-12-12
詳解vue-cli 3.0 build包太大導(dǎo)致首屏過長的解決方案
這篇文章主要介紹了詳解vue-cli 3.0 build包太大導(dǎo)致首屏過長的解決方案,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-11-11
Vue父子組件方法this.$emit()有時候不觸發(fā)問題及解決
這篇文章主要介紹了Vue父子組件方法this.$emit()有時候不觸發(fā)問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05

