当前位置: 首页 > news >正文

网站的模板2003网站建设

网站的模板,2003网站建设,wordpress怎么写php,wordpress是谁写的今天开始学习NodeJs 关于 桌面应用的内容,长期目标是 React electron 实现一个桌面应用。今天先实现一个简单的目标,搭建一个Electron ts 项目架构,并实现主业务线程 和前端渲染线程的交互一、代码结构和配置例子项目结构大致如下&#xff…

今天开始学习NodeJs 关于 桌面应用的内容,长期目标是 React + electron 实现一个桌面应用。

今天先实现一个简单的目标,搭建一个Electron + ts 项目架构,并实现主业务线程 和前端渲染线程的交互

一、代码结构和配置

例子项目结构大致如下:

package.json

{"name": "electron-ts-demo","version": "1.0.0","main": "dist/main.js","scripts": {"build": "tsc && xcopy /y src\\renderer\\*.html dist\\renderer\\","watch": "tsc -w","start": "electron .","dev": "concurrently \"npm run watch\" \"npm run start\""},"devDependencies": {"concurrently": "^9.2.0","electron": "^37.3.0","typescript": "^5.3.2"},"dependencies": {}
}

这里用到一个concurrently 包 是实现多条命令并行执行的工具。

tsconfig.json

{"compilerOptions": {"target": "ES2020","module": "commonjs","sourceMap": true,"outDir": "dist","strict": true,"esModuleInterop": true,"skipLibCheck": true},"include": ["src/**/*"]
}

二、代码实现

preload.ts

预处理实现

import { contextBridge, ipcRenderer } from 'electron';contextBridge.exposeInMainWorld('electronAPI', {sendMessage: (message: string) => ipcRenderer.send('message-from-renderer', message),onReply: (callback: (response: string) => void) => ipcRenderer.on('message-reply', (event, response) => callback(response))
});

实现渲染线程(页面) 发送信息到 主线程,主返回信息到渲染线程 (通过回调的形式)

main.ts

import { app, BrowserWindow, ipcMain } from 'electron';
import path from 'path';let mainWindow: BrowserWindow;function createWindow() {mainWindow = new BrowserWindow({width: 800,height: 600,webPreferences: {preload: path.join(__dirname, 'preload.js'),contextIsolation: true}});mainWindow.loadFile('dist/renderer/index.html');ipcMain.on('message-from-renderer', (event, msg: string) => {console.log('Received:', msg);event.reply('message-reply', `Main process received: ${msg}`);});
}app.whenReady().then(() => {createWindow();//macBook 兼容app.on("activate", () => {if (BrowserWindow.getAllWindows().length === 0) {createWindow();}});
});app.on("window-all-closed", () => {if (process.platform !== "darwin") {app.quit();}
});

上面实现了一个简单的生成一个窗口的例子。使用我们预先准备的preload.js预处理。

通过 ipcMain 监听 发生消息和返回回调。

index.html

<!DOCTYPE html>
<html><head><meta charset="UTF-8" /><title>Electron TS Demo</title><style>body {font-family: Arial;padding: 20px;}button {padding: 8px 16px;}</style></head><body><h1>Electron + TypeScript Demo</h1><button id="sendBtn">Send Message</button><div id="response"></div><script src="renderer.js"></script></body>
</html>

renderer.ts

const sendBtn = document.getElementById('sendBtn')!;
const responseDiv = document.getElementById('response')!;sendBtn.addEventListener('click', () => {console.log("sendBtn Click");window?.electronAPI.sendMessage('Hello from TypeScript');
});window?.electronAPI.onReply((response: string) => {console.log(response);responseDiv.textContent = response;
});

这里添加监听 给主线程发送消息,通过 window.electronAPI 预处理暴露到主页面的对象设置监听方法监听主线程 返回消息。

三、效果

http://www.dtcms.com/a/444786.html

相关文章:

  • html5响应式企业网站上海网站建设价
  • 做美术鉴赏网站的心得wordpress免费装修主题
  • 特色网站设计网站建设 话术
  • 网站建设的行业资讯国外手机网站欣赏
  • 度娘网站灯笼要咋做呢网站的模块怎么做
  • 个人博客网站设计模板wordpress链接替换
  • 湖南哪里有做网站的网站小图标素材
  • 天津网站建设外贸短视频公司网站建设方案
  • 怎么按照屏幕比例做网站适应衡水网站建设联系电话
  • 学校网站备案怎么做营销型网站要多少钱
  • 网站建设与管理收获自助建站信息网
  • 电脑个人网站怎么做WordPress开cdn支付
  • 电子商务网站建设技术有哪些方面网站视频弹窗广告代码
  • 带数据库的网站怎么建jsp和php哪个做网站快
  • 英文外贸商城网站设计超简单手工小制作
  • 嘉兴网站公司哪家好软件技术毕业做什么工作
  • 工信部资质查询网站天津小程序网站开发公司
  • 网站后台申请邮箱天津做网站的公司
  • 怎么注册自己网站wordpress word粘贴
  • 如何快速提高网站关键词排名wordpress 退出登录
  • 厦门网站推广公司网站建设化学图片
  • 怎样选择 网站建设桐乡市城乡规划建设局网站
  • 开一家网站建设公司要多少钱wordpress网站制作app
  • 网站建设ssc源码做网站数据库设计
  • 石家庄网站seo服务医疗网站建设策划
  • 网站开发一般用什么服务器网站跳出率因素
  • 设计公司网站设计标签下载wordpress
  • 怎么建设一个购物网站西安 房产网站建设
  • 网站设计方案案例分析微信网页版注册
  • 福田手机网站建设wordpress的标签设置主页