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

新媒体与网站建设网站友情链接怎么做

新媒体与网站建设,网站友情链接怎么做,收费网站方案,医院预约挂号系统网站开发方案创建应用程序 创建 Electron 应用 使用 Webpack 创建新的 Electron 应用程序#xff1a; npm init electron-applatest my-new-app -- --templatewebpack 启动应用 npm start 设置 Webpack 配置 添加依赖包#xff0c;确保可以正确使用 JSX 和其他 React 功能#xff…创建应用程序 创建 Electron 应用 使用 Webpack 创建新的 Electron 应用程序 npm init electron-applatest my-new-app -- --templatewebpack 启动应用 npm start 设置 Webpack 配置 添加依赖包确保可以正确使用 JSX 和其他 React 功能 npm install --save-dev babel/core babel/preset-react babel-loader 修改配置文件 // webpack.rules.js module.exports [// ... existing loader config ...{test: /\.jsx?$/,use: {loader: babel-loader,options: {exclude: /node_modules/,presets: [babel/preset-react]}}}// ... existing loader config ... ]; 集成前端 React 添加 React 依赖 将基本的 React 包添加到 dependencies npm install --save react react-dom 集成 React 代码 现在可以开始在 Electron 中编写和使用 React 组件了。在 src/app.jsx 中编写 React 代码 import * as React from react; import { createRoot } from react-dom/client;const root createRoot(document.body); root.render(h2Hello from React!/h2); 添加渲染进程 将 React 代码添加到渲染进程 src/renderer.js 中 import ./index.css; import ./app.jsx; console.log( This message is being logged by renderer.js, included via webpack); 启动应用 npm start 主进程和渲染进程通信 在 Electron 中渲染进程和主进程之间的通信需要通过预加载脚本 preload.js 来进行preload.js 的作用就是作为渲染进程和主进程之间通信的桥梁。 渲染进程 - 主进程 当用户在界面上点击最小化或者最大化或者更改某些全局设置如语言偏好、主题等时这些更改通常由渲染进程触发但实际执行由主进程负责。在这种情况下渲染进程调用主进程的方法以应用这些更改但不需要等待主进程的回包因为用户界面的响应可以立即更新而不必等待设置保存的确认。 预加载脚本 在预加载脚本 preload.js 中定义双方通信方法使用 ipcRenderer.send 将信息发往主进程 // See the Electron documentation for details on how to use preload scripts: // https://www.electronjs.org/docs/latest/tutorial/process-model#preload-scriptsconst {contextBridge, ipcRenderer} require(electron);contextBridge.exposeInMainWorld(my_app_name, {// 最小化minimize: () {ipcRenderer.send(minimize)},// 最大化maximize: () {ipcRenderer.send(maximize)} }) 渲染进程 在渲染进程中使用 window.app_name.func_name 调用预加载脚本里的方法 import * as React from react; import { createRoot } from react-dom/client;const root createRoot(document.body); root.render(divbutton onClick{() {window.my_app_name.minimize()}}最小化/buttonbutton onClick{() {window.my_app_name.maximize()}}最大化/button /div); 主进程 在主进程中使用 ipc.Main.on 监听事件并执行具体操作 const {app, BrowserWindow, ipcMain} require(electron); const path require(node:path);let mainWindow;const createWindow () {// 创建浏览器窗口。mainWindow new BrowserWindow({width: 800,height: 600,webPreferences: {preload: MAIN_WINDOW_PRELOAD_WEBPACK_ENTRY, // 预加载脚本用于在主进程和渲染进程之间安全地共享数据},});// 加载应用的index.html。mainWindow.loadURL(MAIN_WINDOW_WEBPACK_ENTRY);// 打开开发者工具。mainWindow.webContents.openDevTools(); };// .....其他代码.....// 监听来自渲染进程的minimize消息最小化主窗口。 ipcMain.on(minimize, event {mainWindow.minimize(); })// 监听来自渲染进程的maximize消息最大化主窗口。 ipcMain.on(maximize, event {mainWindow.maximize(); }) 渲染进程 - 主进程 在 Electron 中用户可能需要打开、保存或者删除文件。当用户点击一个按钮或者菜单项来执行这些操作时渲染进程会向主进程发送一个消息请求执行相应的操作。主进程接到消息后调用系统API来完成文件操作并将操作结果发送回渲染进程渲染进程根据主进程的响应更新界面状态等。 预加载脚本 在预加载脚本 preload.js 中定义双方通信方法使用 ipcRenderer.invoke 将信息发往主进程并将结果返回到渲染进程 // See the Electron documentation for details on how to use preload scripts: // https://www.electronjs.org/docs/latest/tutorial/process-model#preload-scriptsconst {contextBridge, ipcRenderer} require(electron);contextBridge.exposeInMainWorld(my_app_name, {// 选择文件chooseFile: async () {const path await ipcRenderer.invoke(choose-file);return path;}, }) 渲染进程 在渲染进程中使用 window.app_name.func_name 调用预加载脚本里的方法 import * as React from react; import {createRoot} from react-dom/client;const root createRoot(document.body); root.render(divbutton onClick{() {window.my_app_name.chooseFile().then(result {console.log(result[filePaths][0])alert(result[filePaths][0])})}}选择文件/button /div); 主进程 在主进程中使用 ipc.handle 监听事件执行操作并将结果返回给预加载脚本 const {app, BrowserWindow, ipcMain, dialog} require(electron); const path require(node:path);let mainWindow;const createWindow () {// 创建浏览器窗口。mainWindow new BrowserWindow({width: 800,height: 600,webPreferences: {preload: MAIN_WINDOW_PRELOAD_WEBPACK_ENTRY, // 预加载脚本用于在主进程和渲染进程之间安全地共享数据},});// 加载应用的index.html。mainWindow.loadURL(MAIN_WINDOW_WEBPACK_ENTRY);// 打开开发者工具。mainWindow.webContents.openDevTools(); };// .....其他代码.....// 监听来自渲染进程的choose-file消息选择文件并将结果返回给预加载脚本。 ipcMain.handle(choose-file, async (event, data) {const result await dialog.showOpenDialog(BrowserWindow.getFocusedWindow(), {properties: [openFile]});return result }); 主进程 - 渲染进程 Electron 应用启动时有时候需要由主进程从本地存储或者服务器来加载应用的配置信息窗口大小、位置、主题设置等。主进程加载完设置后通过单向通信将配置信息发送给渲染进程。渲染进程接收到配置信息后根据这些信息调整界面布局或者样式。通常用于初始化或者更新应用的界面设置。 主进程 在主进程中使用 mainWindow.webContents.send 将消息发送给预加载脚本 const {app, BrowserWindow, ipcMain, dialog} require(electron); const path require(node:path);let mainWindow;const createWindow () {// 创建浏览器窗口。mainWindow new BrowserWindow({width: 800,height: 600,webPreferences: {preload: MAIN_WINDOW_PRELOAD_WEBPACK_ENTRY, // 预加载脚本用于在主进程和渲染进程之间安全地共享数据},});// 加载应用的index.html。mainWindow.loadURL(MAIN_WINDOW_WEBPACK_ENTRY);// 打开开发者工具。mainWindow.webContents.openDevTools();// 设置十秒钟后发送消息到渲染进程setTimeout(() {mainWindow.webContents.send(message-from-main, Hello from main process!);}, 3000); // 10000 毫秒等于 10 秒 };// .....其他代码..... 预加载脚本 在预加载脚本 preload.js 中使用 ipcRenderer.on 监听消息然后通过回调函数将消息传递给渲染进程 // See the Electron documentation for details on how to use preload scripts: // https://www.electronjs.org/docs/latest/tutorial/process-model#preload-scriptsconst {contextBridge, ipcRenderer} require(electron);contextBridge.exposeInMainWorld(my_app_name, {msgFromMain: (callback) ipcRenderer.on(message-from-main, (event, message) {callback(message);}) }) 渲染进程 在渲染进程中使用 useEffect 来监听消息并作出相应处理 import React, { useEffect, useState } from react;const App () {const [messageFromMain, setMessageFromMain] useState();useEffect(() {// 调用预加载脚本中暴露的 msgFromMain 方法window.my_app_name.msgFromMain((message) {setMessageFromMain(message);});// 清理函数可选如果需要的话可以在这里注销监听器return () {// 如果有必要的话可以在这里注销监听器但在这个例子中我们不需要因为ipcRenderer.on会自动管理监听器的生命周期};}, []); // 确保这个 effect 只运行一次return (div{/* 显示从主进程接收到的消息 */}p{messageFromMain}/p/div); };export default App; 【1】React | Electron Forge
http://www.hkea.cn/news/14355531/

相关文章:

  • 大兴网站建设公司性价比高的域名备案加急
  • 濮阳网站建设优化做网站需要多少空间
  • 建设门户网站国内企业网站设计公司
  • 建设免费网站模板wordpress如何不显示评论
  • 虹口集团网站建设wordpress导航条
  • 网站建设费记到什么科目网站开发公司 广告词
  • 昆山网站建设培训学校网站制作需要多少钱新闻
  • 网站开发定义名称淮安建设网站
  • 书画网站 建站网站交易平台建设
  • 成都网站品牌设计佛山品牌网站设计
  • 高端网站建设 司法wordpress 菜单 标题属性
  • 汉狮做网站公司郑州深圳十大网站建设公司
  • 沈阳市建设工程质量监督局网站wordpress缓存清理插件
  • 有没有那种帮人做ppt的网站现在什么省网站备案最快
  • 电子政务系统网站建设的基本过程用老域名重新做个网站
  • 中山 环保 骏域网站建设专家wordpress 12张表
  • 个人可以做商城网站吗郴州网约车平台有哪些
  • 陕西的网站建设公司如何进入网站管理页面
  • 上海的网站设计公司价格网站建设好的公司哪家好
  • 建立网站域名的费用可以做ppt的网站有哪些内容
  • 太原网站建设案例wordpress 置顶 评论
  • wamp建设网站大致步骤网站开发我能做什么
  • 德阳网站设计wordpress新建留言板
  • 做网站功能双线网站选服务器
  • 南阳市建设局网站推广公司赚钱吗
  • asp网站下用php栏目深圳seo优化关键词排名
  • 怎么做一个电商网站吗附近编程培训机构
  • 供需网站开发建设网站需要备案么
  • 发布消息做任务的网站从网页上直接下载视频
  • 开网店需要自己做网站吗网页设计与制作课件张松炎