当前位置: 首页 > news >正文

Electron-Forge + Vue3 项目初始化

本人对Electron的浅薄理解如下图所示
在这里插入图片描述
由上图可以,如果你需要开发一个electron应用,你得具备基本的前端开发经验。对于electron相关的知识,建议先了解下基本的窗口操作,比如新建窗口、关闭窗口等简单的操作,这些内容在官方文档都能学到,至于其他的内容,可以在开发过程根据需求翻阅官方文档即可,没必要把时间花在啃文档上。

官方文档:https://www.electronjs.org/zh/

该篇文章主要记录下使用新版Electron推荐的Electron-Forge初始化项目,并与Vue3结合开发

官方内容:https://www.electronforge.io/guides/framework-integration/vue-3

官方文档步骤:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
初始化后的项目结构如下:
在这里插入图片描述
接下来创建vue项目目录结构:
安装vue-router路由

npm install vue-router

项目结构如下:
在这里插入图片描述

  • vue-project/pages/home/index.vue

    <template>
      <h1>😁 首页</h1>
    </template>
    
    <script setup>
    </script>
    
  • vue-project/router/index.js

    import { createWebHashHistory, createRouter } from 'vue-router'
    
    import HomeView from '@/vue-project/pages/home/index.vue'
    
    const routes = [
      { path: '/', component: HomeView },
    ]
    const router = createRouter({
      history: createWebHashHistory(),
      routes,
    })
    
    export default router;
    
  • vue-project/App.vue

    <template>
      <h1>🖥️ Hello World!</h1>
      <p>Welcome to your Electron application.</p>
      <p>
        <strong>Current route path:</strong> {{ $route.fullPath }}
      </p>
      <nav>
        <div>
          <RouterLink to="/">Go to Home</RouterLink>
        </div>
      </nav>
      <div style="margin-top: 20px; border: 1px solid grey; padding: 20px; border-radius: 10px;">
        <router-view></router-view>
      </div>
    </template>
    
    <script setup>
    </script>
    

修改初始化时的项目文件,以便接入vue项目

  • src/renderer.js

    import './index.css';
    import { createApp } from 'vue';
    import router from '@/vue-project/router';
    import App from '@/vue-project/App.vue';
    
    createApp(App).use(router).mount('#app');
    
  • index.html

    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="UTF-8" />
        <title>Hello World!</title>
      </head>
      <body>
        <div id="app"></div>
        <script type="module" src="/src/renderer.js"></script>
      </body>
    </html>
    
  • vite.renderer.config.mjs

    import { defineConfig } from 'vite';
    import vue from '@vitejs/plugin-vue';
    import { resolve } from 'path'
    
    // https://vitejs.dev/config
    export default defineConfig({
      plugins: [vue()],
      resolve: {
        alias: {
          '@': resolve(__dirname, './src'),
        }
      }
    });
    

运行

npm run start

在这里插入图片描述

http://www.dtcms.com/a/53723.html

相关文章:

  • 010---基于Verilog HDL的分频器设计
  • 二阶RC+PWM实现DDS
  • 风控模型算法面试题集结
  • Python可视化——地理空间型图表(自用)
  • 2025年Q1起重机指挥证理论考试题库
  • Vue Hooks 深度解析:从原理到实践
  • Tomcat 新手入门指南
  • Java线程池的分析和使用
  • K8s 1.27.1 实战系列(三)安装网络插件
  • hive sql limit offset不起作用
  • 深入解析 Flink 批量插入 MariaDB 不生效问题
  • Linux - 网络基础(网络层,数据链路层)
  • [Python入门学习记录(小甲鱼)]第4章 分支与循环
  • 详细讲解ecovadis奖牌分类
  • 美股表格数据:如何获取和分析历史高频分钟回测数据
  • IDEA与Maven使用-学习记录(持续补充...)
  • EasyBCD,多系统名称或启动顺序的修改,用来配置与调整启动配置数据(BCD)
  • 算法进阶——双指针
  • HarmonyOS Next 属性动画和转场动画
  • 若依前后端分离版使用Electron打包前端Vue为Exe文件
  • GStreamer —— 2.7、Windows下Qt加载GStreamer库后运行 - “教程7:多线程和 Pad 可用性“(附:完整源码)
  • 深入解析Java MDC:日志链路追踪的利器
  • 4.2 使用VNote写作手册页面(CHM助手)
  • Python 第二章:夯实基础,掌握核心
  • 玉米籽粒品质相关性状的GWAS和Meta-QTL分析
  • 【Unity】改变游戏运行时Window的窗口标题
  • DeepSeek + 飞书多维表格搭建你的高效工作流
  • React基础之项目创建
  • 在 CentOS 上,常用几种方法来确保 Python 脚本在断开终端后继续运行
  • Cursor如何调试.Net Core控制台程序