最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2019年02月01日 11:18:34   作者:aaron_lawliet  
這篇文章主要介紹了詳解使用webpack+electron+reactJs開發(fā)windows桌面應用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

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

本質(zhì)上是一個瀏覽器,但是集成了很多windows系統(tǒng)的功能,讓前端開發(fā)也可以直接操作windows的窗體,做成一個實打?qū)嵉淖烂孳浖?/p>

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

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

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

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

幾個重點:

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

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

下面開始

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

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

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

目錄大致如下

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

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

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

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

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

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

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

//main.js

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

窗體部分也可以使用webContent模塊與網(wǎng)頁項目部分通信

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

// main.js 

mainWnd.webContents.send('mainWnd-close');

網(wǎng)頁項目部分做對應的行為

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

// src/MyComponent.js

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

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

·在webpack中使用target: "electron-main"后,webpack將不會打包有關(guān)eletron的代碼

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • React?Hooks鉤子中API的使用示例分析

    React?Hooks鉤子中API的使用示例分析

    在react類組件(class)寫法中,有setState和生命周期對狀態(tài)進行管理,但是在函數(shù)組件中不存在這些,故引入hooks(版本:>=16.8),使開發(fā)者在非class的情況下使用更多react特性
    2022-08-08
  • React性能優(yōu)化的實現(xiàn)方法詳解

    React性能優(yōu)化的實現(xiàn)方法詳解

    react憑借virtual DOM和diff算法擁有高效的性能,除此之外也有很多其他的方法和技巧可以進一步提升react性能,在本文中我將列舉出可有效提升react性能的幾種方法,幫助我們改進react代碼,提升性能
    2023-01-01
  • react執(zhí)行【npx create-react-app my-app】出現(xiàn)常見錯誤的解決辦法

    react執(zhí)行【npx create-react-app my-app】出現(xiàn)常見錯誤的解決辦法

    文章主要介紹了在使用npx創(chuàng)建React應用時可能遇到的幾種常見錯誤及其解決方法,包括缺少依賴、網(wǎng)絡問題和npx解析錯誤等,并提供了相應的解決措施,此外,還提到了使用騰訊云云產(chǎn)品來支持React應用開發(fā)
    2024-11-11
  • React?Refs?的使用forwardRef?源碼示例解析

    React?Refs?的使用forwardRef?源碼示例解析

    這篇文章主要為大家介紹了React?之?Refs?的使用和?forwardRef?的源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • React使用ref進行訪問DOM元素或組件

    React使用ref進行訪問DOM元素或組件

    在 React 里,ref 就像是一個神奇的小助手,能讓你直接去訪問 DOM 元素或者組件實例,下面就跟隨小編一起來學習一下具體的使用方法吧
    2025-03-03
  • React中useEffect Hook常見問題及解決

    React中useEffect Hook常見問題及解決

    React的useEffect Hook它允許我們在函數(shù)組件中執(zhí)行副作用操作,但在使用過程中可能會遇到一些常見的錯誤,本文就來介紹一下常見問題及解決,感興趣的可以了解一下
    2023-10-10
  • ReactNative實現(xiàn)的橫向滑動條效果

    ReactNative實現(xiàn)的橫向滑動條效果

    本文介紹了ReactNative實現(xiàn)的橫向滑動條效果,本文結(jié)合示例代碼給大家介紹的非常詳細,補充介紹了ReactNative基于寬度變化實現(xiàn)的動畫效果,感興趣的朋友跟隨小編一起看看吧
    2024-02-02
  • React 組件中的 bind(this)示例代碼

    React 組件中的 bind(this)示例代碼

    這篇文章主要介紹了 React 組件中的 bind(this) ,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-09-09
  • react navigation中點擊底部tab怎么傳遞參數(shù)

    react navigation中點擊底部tab怎么傳遞參數(shù)

    本文主要介紹了react navigation中點擊底部tab怎么傳遞參數(shù),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • React新擴展函數(shù)setState與lazyLoad及hook介紹

    React新擴展函數(shù)setState與lazyLoad及hook介紹

    這篇文章主要介紹了React新擴展函數(shù)setState與lazyLoad及hook,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2022-12-12

最新評論

镶黄旗| 化德县| 民县| 读书| 定边县| 鄂尔多斯市| 富川| 灵台县| 高阳县| 金昌市| 金昌市| 宁国市| 色达县| 禄丰县| 龙岩市| 晋城| 谷城县| 屯门区| 通城县| 万山特区| 南通市| 中牟县| 海口市| 新巴尔虎右旗| 麻城市| 北川| 凤台县| 盐津县| 安福县| 浏阳市| 旺苍县| 班戈县| 绥化市| 灵武市| 宣汉县| 东至县| 陕西省| 滕州市| 盖州市| 象州县| 昆明市|