首页 > 其他 > 详细

electron react

时间:2021-05-13 00:59:28      阅读:21      评论:0      收藏:0      [点我收藏+]

1、先用create-reat-app创建一个程序

在package.json中配置   "homepage": ".", 要可以从本地访问

2、npm i electron --save-dev

3、在package.json中配置入口文件,具体如下:

{
  "name": "myre",
  "version": "0.1.0",
  "private": true,
  "homepage": ".",
  "main": "main.js",
 
并修改启动命令
  "scripts": {
    "start": "react-scripts start",
    "estart": ".\\node_modules\\.bin\\electron .",

4、主进程
const { app, BrowserWindow,ipcMain  } = require(‘electron‘)
const path = require(‘path‘)function createWindow () {
  const win = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
     // preload: path.join(__dirname, ‘render.js‘),
      nodeIntegration: true,
      // 官网似乎说是默认false,但是这里必须设置contextIsolation
      contextIsolation: false      //有这两个 渲染进程才能用window.require
    }
  })

  win.loadFile(‘./build/index.html‘)
}

ipcMain.on("sendMessage",(event,data) => {
  console.log(data);

})


app.whenReady().then(() => {
  createWindow()

  app.on(‘activate‘, () => {
    if (BrowserWindow.getAllWindows().length === 0) {
      createWindow()
    }
  })
})

app.on(‘window-all-closed‘, () => {
  if (process.platform !== ‘darwin‘) {
    app.quit()
  }
})

5、渲染进程里通信

import React from ‘react‘;
import ReactDOM from ‘react-dom‘;
import ‘./index.css‘;
import App from ‘./App‘;
import reportWebVitals from ‘./reportWebVitals‘;
const { ipcRenderer  } = window.require(‘electron‘)

console.log(ipcRenderer)


function Welcome(props) {
  return (
   <h1 onClick={()=>{alert(1);ipcRenderer.send("sendMessage","this is render");}} >Hello, {props.count}</h1>
  );
}

下载地址

http://47.99.246.229/myre.7z



electron react

原文:https://www.cnblogs.com/cnchengv/p/14762578.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!