electron-vue创建新窗口,以及打开窗口空白的解决办法
vue
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
项目地址:https://gitcode.com/gh_mirrors/vu/vue
·
vue文件内 绑定创建 新建窗口 的 事件
@click="openNewWindow" // 元素上绑定
使用ipcRenderer 通知主进程 创建新窗口,新窗口创建 请使用 主进程创建,不要在vue文件内创建。利于主进程对窗口的控制。
import { ipcRenderer } from 'electron'
openNewWindow(){
ipcRenderer.send('newwindow')
},
ipcMain 添加 新建窗口事件。请在 createWindow函数外,定义newWin变量。用于判断窗口是否已存在,存在则聚焦。
窗口设置 请查看官方文档 中 BrowserWindow 的介绍。
loadURL(winURL + “#/路由地址”)
注意:如果你vue的router没有关闭histrory也就是地址都带个“/#”比如“locolhost:8080/#main”
这里需要写成oadURL(winURL + “/#main”)
注意#加了跟没加处理不好会导致打开的窗口空白
const winURL = process.env.NODE_ENV === 'development'
? `http://localhost:9080`
: `file://${__dirname}/index.html`
// http://localhost:9080 可根据自己项目运行端口配置
// createWindow 函数中
ipcMain.on('newwindow',function(){
if(newWin){
newWin.focus() // 存在 则聚焦
return
}
newWin = new BrowserWindow({
width:900,
height:620,
minWidth:900,
minHeight:620,
frame:true,//是否显示边缘框
fullscreen:false, //是否全屏显示
title:"项目名",
autoHideMenuBar:true
})
newWin.loadURL(winURL+'#/路由地址') // 此处写 你要打开的路由地址
newWin.on('close',()=>{
newWin=null
})
})
主进程 窗口关闭时,请把子窗口也关闭。
ipcMain.on('window-close',function (){
mainWindow.close();
if(newWin){
newWin.close();
}
})
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:3 个月前 )
9e887079
[skip ci] 1 年前
73486cb5
* chore: fix link broken
Signed-off-by: snoppy <michaleli@foxmail.com>
* Update packages/template-compiler/README.md [skip ci]
---------
Signed-off-by: snoppy <michaleli@foxmail.com>
Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 1 年前
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)