Tauri - #004 后端rust读取本地文件前端显示

7 篇文章 0 订阅 ¥99.90 ¥299.90

后端rust读取本地文件前端显示

1 目标

后端rust读取本地文件前端显示。

2 步骤

2.1 main.rs

// Prevents additional console window on Windows in release, DO NOT REMOVE!!
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]

// Learn more about Tauri commands at https://tauri.app/v1/guides/features/command
#[tauri::command]
fn greet(name: &str) -> String {
    format!("Hello, {}! You've been greeted from Rust!", name)
}

// 读取本地文件
use std::fs;

#[tauri::command]
fn read_text_file(path: String) -> Result<String, String> {
    fs::read_to_string(&path).map_err(|err| err.to_string())
}

fn main() {
    tauri::Builder::default()
        .invoke_handler(tauri::generate_handler![greet,read_text_file])
        .run(tauri::generate_context!())
        .expect("error while running tauri application");
}

2.2 Greet.vue

<script setup lang="ts">
import { ref, onMounted } from "vue";
import { invoke } from "@tauri-apps/api/tauri";
import * as Cesium from 'cesium';

const greetMsg = ref("");
const name = ref("");
var viewer: Cesium.Viewer | null = null;


// 存储从后端读取的文件内容
const fileContent = ref("");

onMounted(async () => {
  viewer = new Cesium.Viewer('cesiumContainer', {
    terrain: Cesium.Terrain.fromWorldTerrain(), // 地形数据
  });

  // 获取文本文件内容并存储到 fileContent 中
  fileContent.value = await getTextContent();
});

async function getTextContent() {
  try {
    // 读取本地文件内容
    return await invoke("read_text_file", { path: 'C:\\test\\hello.txt' });
  } catch (error) {
    console.error("Failed to read the file:", error);
    return "Error reading file";
  }
}

async function greet() {
  // Learn more about Tauri commands at https://tauri.app/v1/guides/features/command
  greetMsg.value = await invoke("greet", { name: name.value });
}


</script>

<template>
  <form class="row" @submit.prevent="greet">
    <input id="greet-input" v-model="name" placeholder="Enter a name..." />
    <button type="submit">Greet</button>

  </form>

  <p>{{ greetMsg }}</p>
  <el-button type="primary">我是 ElButton</el-button>
  <!-- 显示文件内容 -->
  <el-text>{{ fileContent }}</el-text>

  <el-container class="home-container">
    <el-header>
    </el-header>
    <el-main>
      <div id="cesiumContainer">
      </div>
    </el-main>
  </el-container>

</template>

2.3 运行工程

  npm run tauri dev

看到一下界面说明成功
在这里插入图片描述

  • 11
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

满天飞飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值