React + Electron环境搭建

基础环境

  • create-react-app创建react项目
  • 添加electron
  • 添加编译依赖electron-builder

开发环境处理

  • 下载依赖concurrently 合并并监控多个node指令进程
  • wait-on: 监控react热更新后,Electron也会进行刷新

进程通信

  • main.js配置
webPreferences: {
			nodeIntegration: true, 
			contextIsolation: false, // 渲染进程是否可使用require
			preload: path.join(__dirname, 'preload.js')
		},
  • React渲染进程
let ipcRenderer;
if (window?.require) {
	const electron = window?.require("electron");
	ipcRenderer = electron.ipcRenderer;
}
  • 自定义操作列
    React定义事件
const min = () => {
		ipcRenderer?.send('window-min');
	};
	const screen = () => {
		ipcRenderer?.send('window-max');
	};
	const close = () => {
		ipcRenderer?.send('window-close');
	};

main.js定义接受通信监听

//接收窗口最小化通信
ipc.on('window-min', () => {
	mainWindow.minimize();
});

//接收窗口变小(还原到原状态)通信
ipc.on('window-max', () => {
	if (mainWindow.isMaximized()) {
		mainWindow.unmaximize();
	} else {
		mainWindow.maximize();
	}
});

//接收窗口最大化通信
ipc.on('window-close', () => {
	mainWindow.close();
});

圆角处理

1、main.js处理

backgroundColor: '#00000000', // 窗口背景色
transparent: true, // 设置透明窗体

2、React样式处理

// body要设置成透明色
body {
 background-color: rgba(0, 0, 0, 0);
}
// 其他div等主要元素设置
#root {
	border-radius: 24px;
	overflow: hidden;
	width: 100%;
    height: 100%;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值