国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

詳解使用webpack+electron+reactJs開發(fā)windows桌面應用

2019-11-19 12:10:56
字體:
來源:轉載
供稿:網友

electron是一兩年前挺火的一個框架

本質上是一個瀏覽器,但是集成了很多windows系統(tǒng)的功能,讓前端開發(fā)也可以直接操作windows的窗體,做成一個實打實的桌面軟件

(當然聽說mac上也可以用electron,不過沒試過)

(沒錯我還在用windows,不是mac也不是linux,我是個lowB)

團隊主要的技術棧是react,所以考慮用react開發(fā),方便維護。

PS.由于項目是大半年前做的,所以一些細節(jié)可能記憶有誤請見諒

幾個重點:

1.想要能調試必須使用webpack打包,不能用react那些常用的打包腳手架,因為webpack打包有target: "electron-main"

2.對于不使用electron模塊的項目,electron可以直接跑任何網頁;對于用到electron模塊的項目,如果不設置target: "electron-main",而直接用webpack打包(或者其他的打包工具),打包工具會直接默認把electron模塊一起打包進去。而electron模塊里會用到node的比如fs模塊,這些模塊都不允許在網頁上調用,因為需要直接訪問電腦文件

下面開始

我們知道electron其實是有兩個部分的,一個是窗體部分,一個是窗體里運行的網頁項目

窗體部分通常放在根目錄下,只使用main.js一個文件來控制

網頁項目部分一般放在src目錄下,打包出來的文件放到dist目錄下

目錄大致如下

main.js文件里會對窗體部分做很多配置

具體可以參見electron的官方文檔:electron官方文檔

mainWnd = new BrowserWindow({  // 窗體配置參數(shù)});mainWnd.loadURL(`file://${__dirname}/dist/index.html`); //這句話是用于配置窗體加載的網頁項目的,配置為打包后的目錄

網頁項目部分使用ipc模塊與electron的窗體部分的ipcMain模塊進行通信,網頁項目部分可以發(fā)送以某個指令給窗體部分

網頁項目部分發(fā)送指令

// src/MyComponent.jsconst ipc = require('electron').ipcRenderer;ipc.send('logout');

窗體部分接收到指令后做相應的行為

//main.jsipcMain.on('logout', function (event, arg) {  // do something  console.log('logint');});

窗體部分也可以使用webContent模塊與網頁項目部分通信

比如用戶點擊關閉窗體,可以使用event.preventDefault();阻塞關閉,然后通知網頁項目部分,做退出登錄的行為,退登完成之后再關閉窗體

// main.js mainWnd.webContents.send('mainWnd-close');

網頁項目部分做對應的行為

比如退出登錄,退出登錄完成后,也使用ipc通知窗體部分,窗體接收到'logout-succ'后,執(zhí)行關閉窗體的行為。

// src/MyComponent.jsipc.on('mainWnd-close', () => {  // do something  ipc.send('logout-succ');})

?在開發(fā)項目時,可以先用網頁的形式開發(fā)項目,等到網頁項目部分差不多完成后,再注入electron中,開發(fā)網頁項目部分和窗體部分的交互

?在webpack中使用target: "electron-main"后,webpack將不會打包有關eletron的代碼

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 长阳| 宜丰县| 宝丰县| 长岛县| 河源市| 孝感市| 白河县| 武汉市| 威远县| 唐海县| 内江市| 甘泉县| 金秀| 长子县| 宣武区| 黔南| 云安县| 宁城县| 开远市| 荣成市| 泸水县| 盘锦市| 仁寿县| 察隅县| 乐安县| 镇赉县| 汕尾市| 北宁市| 宁津县| 峨山| 剑川县| 湖南省| 图木舒克市| 柏乡县| 新竹市| 班玛县| 前郭尔| 临洮县| 崇文区| 北碚区| 乳山市|