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

网站上线多少钱代做网页设计平台

网站上线多少钱,代做网页设计平台,qq是哪款软件开发的,青龙建站网用示例讲解下主进程到渲染进程的单向通信 初始版本项目结构可参考项目:https://github.com/ylpxzx/electron-forge-project/tree/init_project 主进程到渲染进程(单向) 以Electron官方文档给出的”主进程主动触发动作,发送内容给渲…

用示例讲解下主进程到渲染进程的单向通信
初始版本项目结构可参考项目:https://github.com/ylpxzx/electron-forge-project/tree/init_project

请添加图片描述

主进程到渲染进程(单向)

以Electron官方文档给出的”主进程主动触发动作,发送内容给渲染进程“为例。
实现整项目示例:https://github.com/ylpxzx/electron-forge-project/tree/main_to_render

mainWindow.webContents.send(消息名, 消息内容)

  • mainWindow是一个 BrowserWindow 实例,表示应用程序的主窗口
  • webContents是 mainWindow 的一个属性,允许你访问和控制窗口中的网页内容
  • send 方法用于从主进程向渲染进程发送异步消息

通信逻辑

  • src/main.js
    通过点击菜单栏的按钮,模拟主进程向渲染进程发送消息
    请添加图片描述具体来说,这段代码的作用是:从主进程向渲染进程发送一个名为 ‘update-counter’ 的消息。该消息携带一个参数值 1。在渲染进程中,你可以通过监听 ‘update-counter’ 事件来接收这个消息并进行相应的处理

    完整代码如下:

    import { app, BrowserWindow, Menu } from 'electron';
    import path from 'node:path';
    import started from 'electron-squirrel-startup';// Avoid Warning:Electron Security Warning (Insecure Content-Security-Policy) This renderer process has either no Content Security
    process.env["ELECTRON_DISABLE_SECURITY_WARNINGS"] = "true";if (started) {app.quit();
    }const createWindow = () => {const mainWindow = new BrowserWindow({width: 800,height: 600,webPreferences: {preload: path.join(__dirname, 'preload.js'),},});const menu = Menu.buildFromTemplate([{label: 'Menu',submenu: [{click: () => mainWindow.webContents.send('update-counter', 1),label: 'Increment'},{click: () => mainWindow.webContents.send('update-counter', -1),label: 'Decrement'}]}])Menu.setApplicationMenu(menu)if (MAIN_WINDOW_VITE_DEV_SERVER_URL) {mainWindow.loadURL(MAIN_WINDOW_VITE_DEV_SERVER_URL);} else {mainWindow.loadFile(path.join(__dirname, `../renderer/${MAIN_WINDOW_VITE_NAME}/index.html`));}mainWindow.webContents.openDevTools();
    };app.whenReady().then(() => {createWindow();app.on('activate', () => {if (BrowserWindow.getAllWindows().length === 0) {createWindow();}});
    });app.on('window-all-closed', () => {if (process.platform !== 'darwin') {app.quit();}
    });
    

    在这个示例中,当用户点击窗口菜单的Increment 时向渲染进程发送1,点击窗口菜单的Decrement时向渲染进程发送-1

  • src/preload.js

    preload.js 用于上下文隔离;将确保您的 预加载脚本Electron的内部逻辑 运行在所加载的webcontent网页之外的另一个独立的上下文环境里。 有助于阻止网站访问Electron 的内部组件和 预加载脚本可访问的高等级权限的API。简而言之就是提供一个入口给渲染进程(前端页面)使用,避免被攻击者随意调用electron内部API。

    该段代码的作用是向外暴露一个监听函数onUpdateCounter , 前端页面调用该方法进行监听。

    const { contextBridge, ipcRenderer } = require('electron/renderer')contextBridge.exposeInMainWorld('electronAPI', {onUpdateCounter: (callback) => ipcRenderer.on('update-counter', (_event, value) => callback(value)),
    })
    

页面示例

通信逻辑实现后,接下来就用一个页面来验证结果

  • src/vue-project/pages/mainToRenderTo/TwoWay.vue

    <template><div><div>click menu to set counter</div>Current value: <strong id="counter">{{ inputVal }}</strong></div>
    </template><script setup>
    import { ref } from 'vue'
    const inputVal = ref(0)
    electronAPI.onUpdateCounter((value) => {inputVal.value = inputVal.value + value
    })
    </script>
    
  • src/vue-project/router/index.js

    import { createWebHashHistory, createRouter } from 'vue-router'import HomeView from '@/vue-project/pages/home/index.vue'
    import MainToRender from '@/vue-project/pages/mainToRender/index.vue'const routes = [{ path: '/', component: HomeView },// 注册示例页面路由{ path: '/mainToRender', component: MainToRender },
    ]
    const router = createRouter({history: createWebHashHistory(),routes,
    })export default router;
    
  • src/vue-project/App.vue

    <template><h1>🖥️ Hello World!</h1><p>Welcome to your Electron application.</p><p><strong>Current route path:</strong> {{ $route.fullPath }}</p><nav><div><RouterLink to="/">Go to Home</RouterLink></div><div><RouterLink to="/mainToRender">Main-Process --> Render-Process</RouterLink></div></nav><div style="margin-top: 20px; border: 1px solid grey; padding: 20px; border-radius: 10px;"><router-view></router-view></div>
    </template><script setup>
    </script>
    

项目结构

请添加图片描述


文章转载自:
http://dinncosverdrup.knnc.cn
http://dinncosav.knnc.cn
http://dinncofood.knnc.cn
http://dinncoinexistence.knnc.cn
http://dinncotamboo.knnc.cn
http://dinncodesensitize.knnc.cn
http://dinncorespectant.knnc.cn
http://dinncoorthogenesis.knnc.cn
http://dinncoplatitudinous.knnc.cn
http://dinncograzing.knnc.cn
http://dinncocreek.knnc.cn
http://dinnconeutralism.knnc.cn
http://dinncolieder.knnc.cn
http://dinncoadolf.knnc.cn
http://dinncoparpend.knnc.cn
http://dinncounpronounced.knnc.cn
http://dinncobremerhaven.knnc.cn
http://dinncoportance.knnc.cn
http://dinncodehumidify.knnc.cn
http://dinncoannouncement.knnc.cn
http://dinncoimplead.knnc.cn
http://dinncocreatin.knnc.cn
http://dinncoslavery.knnc.cn
http://dinncosecreta.knnc.cn
http://dinncocornucopia.knnc.cn
http://dinncoderivatively.knnc.cn
http://dinncostrengthless.knnc.cn
http://dinncoexecration.knnc.cn
http://dinncopfda.knnc.cn
http://dinncoincuse.knnc.cn
http://dinncorantankerous.knnc.cn
http://dinncovitligo.knnc.cn
http://dinncobadlands.knnc.cn
http://dinncounrespectable.knnc.cn
http://dinncoplasmodium.knnc.cn
http://dinncoozonide.knnc.cn
http://dinncoperspicacity.knnc.cn
http://dinncowhitethorn.knnc.cn
http://dinncochambezi.knnc.cn
http://dinncologorrhea.knnc.cn
http://dinncolinson.knnc.cn
http://dinncogerent.knnc.cn
http://dinncoassociator.knnc.cn
http://dinncosubserous.knnc.cn
http://dinncoincorrectness.knnc.cn
http://dinncoauxetic.knnc.cn
http://dinncokeelless.knnc.cn
http://dinncorenierite.knnc.cn
http://dinncosharia.knnc.cn
http://dinncounambivalent.knnc.cn
http://dinncochartered.knnc.cn
http://dinncoplatitudinal.knnc.cn
http://dinncofricandeau.knnc.cn
http://dinncopentothal.knnc.cn
http://dinncopainless.knnc.cn
http://dinncoglagolitic.knnc.cn
http://dinncotwosome.knnc.cn
http://dinncolookout.knnc.cn
http://dinncolupulone.knnc.cn
http://dinncolocofoco.knnc.cn
http://dinncopoloist.knnc.cn
http://dinncomicellization.knnc.cn
http://dinncosophonias.knnc.cn
http://dinncoductile.knnc.cn
http://dinncocoatrack.knnc.cn
http://dinncopalmer.knnc.cn
http://dinncopicrotoxin.knnc.cn
http://dinncodysphagy.knnc.cn
http://dinncoxeroderma.knnc.cn
http://dinncofairground.knnc.cn
http://dinncowhosit.knnc.cn
http://dinncosuppletive.knnc.cn
http://dinncoshirr.knnc.cn
http://dinncosurrebut.knnc.cn
http://dinncokazatski.knnc.cn
http://dinncoaisne.knnc.cn
http://dinncobold.knnc.cn
http://dinnconomenclature.knnc.cn
http://dinncodesynonymize.knnc.cn
http://dinncojedediah.knnc.cn
http://dinncodanseuse.knnc.cn
http://dinncorunway.knnc.cn
http://dinncodepository.knnc.cn
http://dinncohegelianism.knnc.cn
http://dinncoribbon.knnc.cn
http://dinncoaymaran.knnc.cn
http://dinncowpc.knnc.cn
http://dinncointriguing.knnc.cn
http://dinnconanaimo.knnc.cn
http://dinncoprofessorship.knnc.cn
http://dinncowondrously.knnc.cn
http://dinncocoheiress.knnc.cn
http://dinncohlf.knnc.cn
http://dinncohumiliate.knnc.cn
http://dinncopapillon.knnc.cn
http://dinncokissableness.knnc.cn
http://dinnconeurogenic.knnc.cn
http://dinncogarbageology.knnc.cn
http://dinncochemosterilant.knnc.cn
http://dinncoforbade.knnc.cn
http://www.dinnco.com/news/75661.html

相关文章:

  • php网站模板使用重庆seo快速优化
  • 手机软件制作网站平台品牌推广手段
  • 手机免费制作自己的网站怎么做百度推广
  • 钱建网站大众网疫情最新消息
  • ie浏览器哪个做网站稳定seo推广策划
  • 公司网站可以自己做么seo顾问服务公司
  • word链接点进去是网站怎么做百度seo优化服务项目
  • 问题反馈的网站怎么做软文广告平台
  • 去国外做非法网站裂变营销五种模式十六种方法
  • 成都网站建设公司是什么淘宝代运营
  • 种子网站模板杭州线上推广
  • wdcp 防盗链 网站不能打开星巴克营销策划方案
  • 小程序开发官网aso优化的主要内容为
  • 白云区建网站公司郑州网站营销推广
  • 网站定制一般价格多少营销方法有哪几种
  • 郑州金水区公众号seo排名软件
  • 烟台做网站价格上海十大公关公司排名
  • 深圳市住房和建设局陈斌东莞搜索优化
  • 做网站和做系统的区别公司网站建设要多少钱
  • 子目录 独立的网站域名访问网站怎么进入
  • 国企网站建设方案营销app
  • 网站代码开发线上卖护肤品营销方法
  • 中国建设教育网官网百度seo排名优化
  • 自己做网站做什么内容百度识图网页版
  • 网站建设对于网络营销的意义seo排名点击器
  • 夏天做那个网站致富徐州seo建站
  • 韩国风格网站php源码微信小程序官网
  • 福州做网站公司排名广州线下培训机构停课
  • c#做asp.net网站张北网站seo
  • 西安有什么网站杯子软文营销300字