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();
}
})
GitHub 加速计划 / vu / vue
207.54 K
33.66 K
下载
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:2 个月前 )
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> 4 个月前
e428d891
Updated Browser Compatibility reference. The previous currently returns HTTP 404. 5 个月前
更多推荐
已为社区贡献1条内容
所有评论(0)