tauri和vue通信的问题解决方案示例详解

 更新时间:2023年10月18日 09:17:48   作者:o_ra  
这篇文章主要为大家介绍了tauri和vue通信的问题解决方案示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

vue在前端调用rust里的函数

之前用bery写了个ui发现cpu占用挺高的 就试着用tauri写一下发现性能还挺好的,记录日志时候刷新几万条也不卡

前端使用的是vue在前端调用rust里的函数可以在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需要发消息

在vue中先监听消息可以在mounted中调用

async mounted(){
      this.unlisten = listen('udp_log', this.handleEventRecv);
  },

注销时候调用一下listen返回的值就行了

unmounted(){
    this.unlisten.then(F=>F());
  }

在rust中发消息时候有可能是在单独一个线程里发的可以使用

后台进程使用

lazy_static!{
    static ref G_UDP_SER: Mutex<UdpNetworkPlugin> = Mutex::new(UdpNetworkPlugin::new());
}

创建一个全局变量,先不启动后台进程 ,启动后台进程等app启动获取到可以发消息的句柄再启动,启动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(|_,_| {});
}

先构造一个app 先不run 就能用app获取到发消息的句柄

发消息使用

win.emit("udp_log", text.to_string());

这个只有这个win move到后台线程

以上就是tauri和vue通信的问题解决方案示例详解的详细内容,更多关于tauri vue通信的资料请关注脚本之家其它相关文章!

相关文章

  • electron-vue+electron-updater实现自动更新(步骤源码)

    electron-vue+electron-updater实现自动更新(步骤源码)

    这篇文章主要介绍了electron-vue+electron-updater实现自动更新,步骤源码包括autoUpdater.js操控更新js文件,main.js也就是package.json内的main指向的js文件,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-10-10
  • vue前端框架vueuse的useScroll函数使用源码分析

    vue前端框架vueuse的useScroll函数使用源码分析

    这篇文章主要为大家介绍了vueuse的useScroll函数源码分析详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • vue-cropper组件实现图片切割上传

    vue-cropper组件实现图片切割上传

    这篇文章主要为大家详细介绍了vue-cropper组件实现图片切割上传,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-05-05
  • Vue3 实现一个自定义toast 小弹窗功能

    Vue3 实现一个自定义toast 小弹窗功能

    这篇文章主要介绍了Vue3 实现一个自定义toast 小弹窗,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-09-09
  • vant picker+popup 自定义三级联动案例

    vant picker+popup 自定义三级联动案例

    这篇文章主要介绍了vant picker+popup 自定义三级联动案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • vue中如何创建多个ueditor实例教程

    vue中如何创建多个ueditor实例教程

    这篇文章主要给大家介绍了关于vue中如何创建多个ueditor的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-11-11
  • VUE中的自定义指令钩子函数讲解

    VUE中的自定义指令钩子函数讲解

    这篇文章主要介绍了VUE中的自定义指令钩子函数,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • 如何基于Vue3封装一个好用的Websocket

    如何基于Vue3封装一个好用的Websocket

    这篇文章主要给大家介绍了关于如何基于Vue3封装一个好用的Websocket的相关资料,在Vue3中我们可以将Websocket类封装成一个Vue插件,以便全局使用,需要的朋友可以参考下
    2023-09-09
  • webstorm+vue初始化项目的方法

    webstorm+vue初始化项目的方法

    今天小编就为大家分享一篇webstorm+vue初始化项目的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • 基于Vue开发数字输入框组件

    基于Vue开发数字输入框组件

    本文通过实例代码给大家介绍了基于Vue开发数字输入框组件,需要的朋友可以参考下
    2017-12-12

最新评论