electron-vue点击打开新的窗口

1.首先在background.js中利用ipcMain创建,首先引用

import { app, BrowserWindow, ipcMain } from 'electron'

2.在background.js里创建一个function

let newWindow  //在顶部定义一个变量

const winURL = process.env.NODE_ENV === 'development'
  ? `http://localhost:8080` // 开发路径
  : `file://${__dirname}/index.html` //生产路径

function jiuCuo() {    //在下面定义一个函数
  ipcMain.on('create-new-window', () => {  //'create-new-window'随便命名,用于打开窗口
    if (newWindow) {
      newWindow.focus() // 存在 则聚焦
      return
    }
    newWindow = new BrowserWindow({
      width: 1107, //窗口宽高
      height: 603,
      title: '交换机路由器脚本自动配置工具-纠错',
      closable: true,
      resizable: false,//禁止窗口随意拉伸
      webPreferences: {
        nodeIntegration: true,
        contextIsolation: false,
        enableRemoteModule: true,
      }
    })
    newWindow.loadURL(winURL + '#/about')
    newWindow.on('closed', () => {
      newWindow = null
    })
  })
}


app.on('ready', async () => {    //这个监听是background.js自带的
  if (isDevelopment && !process.env.IS_TEST) {
    // Install Vue Devtools
    try {
      await installExtension(VUEJS3_DEVTOOLS)
    } catch (e) {
      console.error('Vue Devtools failed to install:', e.toString())
    }
  }
  createWindow()
  jiuCuo()   //在此处调用
  
})

注意:create-new-window用于渲染进程(就是前端代码)用来发送这个字段,触发create-new-window窗口。

3.在渲染进程里,background.js是主进程,引用ipcRenderer

  

import { ipcRenderer} from 'electron';



在methods里定义一个点击事件
methods:{
   clickd(){

   ipcRenderer.send('create-new-window')


   }


}

background.js接收到后窗口就出现了。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
electron-vue是一个将Vue和Electron结合的项目,可以方便地创建多窗口应用程序。下面是一个演示如何在electron-vue中创建多窗口的例子: 1. 首先,在renderer目录下创建一个的Vue组件,例如`SecondWindow.vue`,用于作为第二个窗口的内容。 ```vue <template> <div> <h1>Second Window</h1> <p>This is the content of the second window.</p> </div> </template> <script> export default { name: 'SecondWindow' } </script> ``` 2. 在`renderer/router/index.js`文件中,添加一个的路由路径,用于打开第二个窗口。 ```javascript import SecondWindow from '@/components/SecondWindow.vue' // ... const routes = [ // ... { path: '/second', name: 'SecondWindow', component: SecondWindow } ] // ... ``` 3. 在`renderer/App.vue`文件中,添加一个按钮,用于打开第二个窗口。 ```vue <template> <div> <h1>Main Window</h1> <p>This is the content of the main window.</p> <router-link to="/second">Open Second Window</router-link> </div> </template> <script> export default { name: 'App' } </script> ``` 4. 在`renderer/main.js`文件中,添加一个窗口创建函数,用于创建第二个窗口。 ```javascript import { createApp } from 'vue' import SecondWindow from './components/SecondWindow.vue' // ... function createSecondWindow() { const secondWindow = new BrowserWindow({ width: 800, height: 600, webPreferences: { nodeIntegration: true } }) secondWindow.loadURL(process.env.WEBPACK_DEV_SERVER_URL + '#/second') // ... return secondWindow } // ... ``` 5. 在需要打开第二个窗口的地方调用`createSecondWindow`函数。 ```javascript // ... ipcMain.on('open-second-window', () => { const secondWindow = createSecondWindow() // ... }) // ... ``` 现在,你可以通过点"Open Second Window"按钮来打开第二个窗口,并在第二个窗口中显示"Second Window"的内容。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值