首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >仅15MB!Tauri 2.12 + Vite 8 + ElementPlus客户端Admin后台实战

仅15MB!Tauri 2.12 + Vite 8 + ElementPlus客户端Admin后台实战

原创
作者头像
andy2018
发布于 2026-10-21 11:22:35
发布于 2026-10-21 11:22:35
370
举报
文章被收录于专栏:h5h5

弃 Electron,Tauri 2.12 + Vite 8 + Vue 3 + Pinia4 + Element Plus打造轻量级桌面 Admin,打包体积仅 15MB!

Tauri 2.12-Vite8-Vue3-Admin支持浅色+暗黑主题,内置4种布局模板,涵盖图表、表格、表单、编辑器、异常页等高频业务组件,真正开箱即用。

实现技术

  • 跨平台框架: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

项目结构目录

Tauri 2.12 驱动,Vite 8 加速 —— 一套高性能、高颜值、开箱即用的 Vue3 中后台管理系统框架。

项目功能特性

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

项目入口配置/模板

代码语言:actionscript
复制
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模板

代码语言:actionscript
复制
<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>

页面布局结构

代码语言:actionscript
复制
<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>

后台国际化配置

代码语言:actionscript
复制
import { createI18n } from 'vue-i18n'
import { appState } from '@/pinia/modules/app'

// 引入语言配置
import enUS from './en-US'
import zhCN from './zh-CN'
import zhTW from './zh-TW'

// 默认语言
export const langVal = 'zh-CN'

export default async (app) => {
  const appstate = appState()
  const lang = appstate.lang || langVal
  appstate.setLang(lang)

  const i18n = createI18n({
    legacy: false,
    locale: lang,
    messages: {
      'en': enUS,
      'zh-CN': zhCN,
      'zh-TW': zhTW
    }
  })
  
  app.use(i18n)
}

从Electron到Tauri 2.12+Vite 8:一个Admin系统的重写实录,体积缩小87%,Tauri真香!

全新升级!Tauri 2.12 + Vite 8 + ElementPlus 客户端聊天 架构实践

tauri2.9-vite7-vue3admin客户端后台系统管理Exe模板

electron38-vite7-vue3os电脑端os管理系统

最新版electron38-vite7-admin电脑端中后台管理系统

Electron38+Vite7+Pinia3+ElementPlus客户端聊天程序

最新款flutter3.41 & dart3.11仿写抖音app

升级款vite8+vue3.5+arcoDesign网页端webOS桌面框架

Electron-React19-WinChat聊天系统|react+electron客户端聊天程序Exe

React19+Arco+Zustand仿macOS风格webOS桌面系统

基于React19+Arco+Zustand5接入DeepSeek-V4网页版仿豆包/Kimi流式AI系统

Vite8.0+Vue3.5+Arco深度对接DeepSeek网页版AI智能助手

uni-app+mphtml快速集成DeepSeek-V4智能ai应用

2026原创自研React19+Vite8+ArcoDesign+Zustand中后台管理系统框架模板

自研Vite8+NaiveUI+Vue3+Echarts后台管理系统

全新研发Flutter3.41桌面版OS系统

Flutter3.41实战AI:从零到一构建app版流式ai系统

Electron41 + Vite8打造流式输出客户端AI助手

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 实现技术
  • 项目结构目录
  • 项目功能特性
  • 项目入口配置/模板
  • 页面布局结构
  • 后台国际化配置
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档