首页 > 其他分享 >electron + vite + vue3问题

electron + vite + vue3问题

时间:2024-11-18 16:43:36浏览次数:1  
标签:窗口 渲染 app electron vue3 进程 vite

electron + vite + vue3  参考网址: https://evite.netlify.app/     安装步骤     npx degit alex8088/electron-vite-boilerplate electron-app     cd electron-app     npm install     npm run dev   electron-app项目,目录结构说明     build ==》打包操作,例如:打包后的应用图标,.env环境变量的配置等等     resources ==〉资料目录,例如:放入图片,有点类似于vue-cli中的publick目录     src         |main      ==>操作主进程内容,例如:创建窗口等         |preload   ==>预加载,本身渲染进程是不可以使用electron等api的,通过preload预加载就可以使用了。         |renderer  ==>操作渲染进程,就是应用中的内容。       electron.vite.config.ts  ==》这个和vue中的vite.config.js || vue.config.js类似    安装路由              安装路由:npm install vue-router -S     新建:router/index.js     router/index.js写入内容       import { createRouter, createWebHashHistory } from "vue-router";     export default createRouter({       history: createWebHashHistory(),//hash模式       routes:[{ path: "/", component: Login }]//路由配置规则数组     })       main.ts中use一下router     use(router)    下载pinia     官网:https://pinia.web3doc.top/     下载:npm install pinia -S     main.ts引入      import { createPinia } from 'pinia'     app.use(createPinia())       新建目录:store/index.js     import { defineStore } from 'pinia'     export const useStore = defineStore('storeId', {      state: () => {       return {        counter: 0,        }       },       getters:{},       actions:{}     })   electron.vite.config.ts配置   export default defineConfig({     main: {       ...     },     preload: {       ...     },     renderer: {       resolve: {         alias: {           ...         }       },       server:{         "proxy":{           "/api":{             target:'http://uat.crm.xuexiluxian.cn',             changeOrigin:true,             rewrite: path =>  path.replace(/^\/api/,'')           }         }       },       plugins: [         ...       ]     }   })        打开调适     窗口.webContents.openDevTools();       渲染进程 向 主进程通信     渲染进程:     electron.ipcRenderer.invoke('名称',{ 传值 } )     主进程:     import { app, shell, BrowserWindow , ipcMain } from 'electron'     ipcMain.handle('名称',(event,渲染进程向主进程传递的参数)=>{       })     窗口大小位置设置     1、大小        new BrowserWindow({         width: 500,         height: 500,         minHeight:500,         minWidth:500,         maxHeight:500,         maxWidth:500,         show: false,         resizable:false, ==> 窗口大小是否可调整。 默认值为 true。     })       2、位置        //初始化设置     new BrowserWindow({         x:10,         y:10     })     //有计算的设置     mainWindow.setBounds({         y:winHeight-250     })       3、screen       检索有关屏幕大小、显示器、光标位置等的信息。       获取屏幕宽度高度等: screen.getPrimaryDisplay()          4、窗口置顶        alwaysOnTop:true,//置顶窗口     5、透明窗口       transparent:true,//窗口透明     6、锁定、解锁窗口       参考链接:https://www.xuexiluxian.cn/blog/detail/207128a5387c43a198f69669728ac71e     7、解决阴影问题       hasShadow:false,//去除阴影  问题:        1、原生状态:有标题和关闭、缩小、放大     2、无标题,有:关闭、缩小、放大       2.1 隐藏标题         titleBarStyle:'hidden'     3、无标题,无关闭、缩小、放大       3.1 无边框窗口         frame:false       3.2 无关闭、缩小、放大 需要 ==> 自定义     4、解决窗口无法移动       4.1 渲染进程添加样式来解决         1. 在渲染进程的dom中,添加样式:-webkit-app-region: drag;         2. 给不需要拖拽的元素,取消-webkit-app-region: no-drag;事件才可以生效       4.2 渲染进程向主进程通信==》主进程设置窗口的位置         1. 渲染进程添加事件mousedown,使用拖拽的方式来记录值         2. 渲染进程把值,传递给主进程         3. 主进程设置窗口的位置: mainWindow.setPosition(res.appX,res.appY);        

标签:窗口,渲染,app,electron,vue3,进程,vite
From: https://www.cnblogs.com/xinheng/p/18553019

相关文章

  • linux(统信)下搭建electron开发环境
    1.安装vscode下载地址https://vscode.download.prss.microsoft.com/dbazure/download/stable/f1a4fb101478ce6ec82fe9627c43efbf9e98c813/code-stable-x64-1731511985.tar.gz下载后拷贝压缩包到安装目录下解压缩.点击code就可以启动.2.安装githttps://git-scm.com/downlo......
  • Electron框架使用vue开发跨平台桌面工具应用-后台日志发送到前台和执行导入ZIP
    一、后台日志发送到前台首先在preload.js里面注册回调因为需要主窗口给vue页面发送,需要把窗口管理起来,不能直接写在backgroud.js里面。需要暴露出来所以编写了windowManager.js//windowManager.jsletmainWindow=null;//设置mainWindowexportfunctionsetMainWind......
  • Nuxt.js 应用中的 vite:serverCreated 事件钩子
    title:Nuxt.js应用中的vite:serverCreated事件钩子date:2024/11/18updated:2024/11/18author:cmdragonexcerpt:通过使用vite:serverCreated钩子,开发者可以在Vite服务器创建时执行特定的操作,包括添加中间件和自定义配置。这使得在开发环境中能够快速响应请求及调整......
  • vue3 下拉框自带的模糊查询不准确 el-autocomplete
    一、元素标签写法<el-form-itemlabel="配件名称"prop="materialName"><el-autocompletestyle="width:100%"v-model="form_feiyong.materialName":fetch-suggestions="querySearchVType"clearableplac......
  • Vue3 + Pinia:直接修改数据的终极指南
    Hey小伙伴们!今天我们要聊的是Vue3中一个非常强大的状态管理库——Pinia。Pinia不仅简化了状态管理的复杂度,还提供了丰富的功能,让你在存储数据时更加得心应手。特别是Pinia允许我们直接修改状态数据,非常方便。让我们一起来看看如何在Vue3项目中使用Pinia直接修改数据吧!......
  • 使用React和Vite构建一个AirBnb Experiences克隆网站
    这一篇文章中,我会教你如何做一个AirBnbExperiences的克隆网站。主要涵盖React中Props的使用。克隆网站最终呈现的效果:1.使用vite构建基础框架npmcreatevite@latestcdairbnb-projectnpminstallnpmrundev2.构建网站的3个部分网站从上至下主要分为导航栏......
  • Nuxt.js 应用中的 vite:configResolved 事件钩子
    title:Nuxt.js应用中的vite:configResolved事件钩子date:2024/11/17updated:2024/11/17author:cmdragonexcerpt:在Nuxt3中,vite:configResolved钩子允许开发者在Vite配置被解析后访问已解析的配置项。这使得在构建过程中能够根据最终的配置进行动态调整和扩展......
  • Nuxt.js 应用中的 vite:extendConfig 事件钩子详解
    title:Nuxt.js应用中的vite:extendConfig事件钩子date:2024/11/16updated:2024/11/16author:cmdragonexcerpt:通过合理使用vite:extendConfig钩子,开发者可以极大地增强Nuxt3项目的灵活性和功能性,为不同的项目需求量身定制Vite配置。无论是添加插件、调整构建......
  • vue3:computed
    扫码或者点击文字后台提问原文: https://mp.weixin.qq.com/s/36dd--oj6jmkZblfJRh4iw computed支持选项式写法和函数式写法1.选项式写法支持一个对象传入get函数以及set函数自定义操作 2.函数式写法只能支持一个getter函数不允许修改值的<template><div><d......
  • electron视频音频处理简单说明
    属于一个总结,一般我们都是使用navigator.mediaDevices.getUserMedia+desktopCapturer集成,但是getUserMedia对于音频的捕捉是有一些问题的(audio为true会有bug)基于sessionsetDisplayMediaRequestHandler推荐基于此方法,可以灵活的实现音视频的捕捉处理,win.webContents.ses......