Tauri 2.12 + Vite 8 + Vue 3 重构 Admin 实战,包体缩了 92%

举报
yxybox 发表于 2026/10/21 20:47:55 2026/10/21
【摘要】 最新版 Tauri 2.12 + Vite 8 + Vue 3 + Element-Plus实战:从零搭建桌面 Admin 管理系统。

从 Electron 到 Tauri 2.12:Vite 8 + Vue 3 + Element Plus 重构桌面 Admin 管理后台Exe实践。

技术知识点

  • 跨平台框架:Tauri^2.12.3
  • 前端技术框架:vite^8.3.4+vue^3.5.43+vue-router^5.4.0
  • 组件库:element-plus^2.14.7
  • 状态管理:pinia^4.1.0
  • 国际化方案:vue-i18n^11.4.15
  • 图表插件:echarts^6.1.0
  • markdown组件:md-editor-v3^7.1.0
  • 富文本组件:@vueup/vue-quill^1.5.5
  • 数据模拟:mockjs^1.1.0

p1.gif

项目结构目录


360截图20261030220502378.png


快速预览项目👇


p1-1-1.gif


项目功能性

🚀 前沿技术栈:基于 Tauri 2.12、Vite 8、Vue 3​ (Setup Syntax)、Pinia 34 构建,享受极速开发体验。
🌍 国际化支持:深度集成 Vue-I18n,完美支持简体中文、英文、繁体三种语言无缝切换。
🎨 多布局系统:内置 4种​ 通用布局模板(经典、分栏、纵向、横向),满足不同业务审美需求。
🧭 智能路由:支持动态路由权限、面包屑导航及快捷路由标签栏,操作更流畅。
🖥️ 多窗口管理:深度封装 Tauri 2 多开窗口管理,轻松应对复杂桌面端交互场景。
📊 丰富业务场景:内置 Echarts 图表、复杂表格、动态表单、列表、富文本编辑器及全局错误处理页面。
💅 UI 组件:基于 Element Plus​ 深度定制,风格统一,组件丰富。


360截图20261030220502399.png

p2.gif


入口配置main.js

import { createApp } from 'vue'
import './style.scss'
import App from './App.vue'

// 引入状态/路由管理
import Pinia from './pinia'
import Router from './router'

// 引入插件配置
import Plugins from './plugins'

createApp(App)
.use(Pinia)
.use(Router)
.use(Plugins)
.mount('#app')

主模板App.vue

<script setup>
  import { onMounted, computed } from 'vue'
  import { useRouter } from 'vue-router'
  import { getCurrentWebviewWindow } from '@tauri-apps/api/webviewWindow'

  import { appState } from '@/pinia/modules/app'
  import { Loaded } from '@/plugins/loaded'

  // 引入组件库国际化
  import zhCN from 'element-plus/es/locale/lang/zh-cn'
  import enUS from 'element-plus/es/locale/lang/en'
  import zhTW from 'element-plus/es/locale/lang/zh-tw'

  const locales = {
    'zh-CN': zhCN,
    'en-US': enUS,
    'zh-TW': zhTW,
  }

  const router = useRouter()
  const appstate = appState()

  const locale = computed(() => locales[appstate.lang] ?? zhCN)

  Loaded()

  onMounted(async() => {
    try {
      const win = getCurrentWebviewWindow()
      // 确保初始导航就绪
      await router.isReady()
      await win.show()
      await win.unminimize()
      await win.setFocus()
    } catch (err) {
      console.warn('[window] 初始化窗口失败:', err)
    }
  })
</script>

<template>
  <el-config-provider :locale="locale">
    <router-view />
  </el-config-provider>
</template>


360截图20261021112207151.png


页面布局模板

<script setup>
  import { appState } from '@/pinia/modules/app'

  import Toolbar from '@/layouts/components/toolbar/index.vue'
  import Sidebar from '@/layouts/components/sidebar/index.vue'
  import Menus from '@/layouts/components/menus/index.vue'
  import Breadcrumb from '@/layouts/components/Breadcrumb.vue'
  import Tabview from '@/layouts/components/Tabview.vue'
  import Main from '@/layouts/components/Main.vue'

  const appstate = appState()
</script>

<template>
  <div class="vuadmin__layout flexbox flex-col">
    <Toolbar />

    <div class="vuadmin__layout-body flex1 flexbox">
      <!-- 侧边栏 -->
      <div class="vuadmin__layout-sidebar">
        <Sidebar />
      </div>

      <!-- 菜单栏 -->
      <div class="vuadmin__layout-menus" :class="{'hidden': appstate.config.collapsed}">
        <el-scrollbar>
          <Menus :rootRouteEnable="false" />
        </el-scrollbar>
      </div>

      <!-- 右侧主内容区 -->
      <div class="vuadmin__layout-main flex1 flexbox flex-col">
        <!-- 面包屑导航 -->
        <Breadcrumb />

        <!-- 标签页 -->
        <Tabview />

        <!-- 内容区 -->
        <Main />
      </div>
    </div>
  </div>
</template>

Tauri 2.12 + Vite 8 + Vue 3 + Element Plus 重构桌面后台:从 0 到 1 完整实战就分享到这里。

更多实战进阶项目👇

仿微信桌面客户端:Vite8+Tauri2.12+Vue3+Pinia4打造聊天系统

原创vite8+vue3.5+arco-design网页版webos管理系统模板

2026/6升级版Flutter3.41.5桌面级OS管理系统

Flutter3.41实战抖音直播+短视频+聊天

首发vite8.0+vue3+deepseek+markdown手搓网页版ai流式生成模板

Tauri2.9+Vue3实战电脑版OS系统|vite7.2+tauri2仿mac/wins桌面管理os模板

Electron38.2实战客户端OS系统|vite7+vue3+electron仿mac/wins桌面

Electron38+Vite7+Vue3+ElementPlus桌面客户端后台管理系统Exe

最新研发vite7.0+electron38客户端仿微信EXE聊天软件

首款react19+electron41+antd高颜值桌面客户端中后台admin系统框架

React19+Electron聊天室|electron41跨平台仿微信EXE客户端|react聊天程序


【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。