1. 程式人生 > >Electron入門指北

Electron入門指北

最近幾年最火的桌面化技術,無疑是**Qt+**和**Electron**。 **兩者都有跨平臺桌面化技術,並不侷限於Windows系統**。前者因嵌入式而誕生,在演變過程中,逐步**完善了生態以及工具鏈**。後者則是依託於**Node.Js**和**CCM(Chromium Content Module)**,支援**Node.js**和**Node.js原生**以及自主封裝的**Electron API**。 因為專案考慮跨平臺的技術選型,研究過長達一年的Electron,並且做了很多嘗試,所以想與諸君分享Electron的技術心得。 # Electron的特點 Electron依賴於Node.js,只要會用Node.js開發程式的,都可以用Electron開發桌面應用,只需要前端結合Electron API,就可以快速完成桌面應用,**一處程式碼,多處編譯**。 ## Electron的優勢 可以編譯在Windows、Mac、Linux的X64/x86環境,因為是系統**獨立打包,不依賴執行時**。 頁面開發依賴於Node.js加前端,可以很便捷的採用前端開發頁面,再通過Electron API結合的形式,Electron API可以理解為一套Node原生庫,實際上安裝也就是一句 **npm install electron** Electron核心採用Chromium,可以相容主流瀏覽器,並不需要額外適配,而且採用Chromium LST(長期支援版本),並不會過於激進的選擇最新版本,減少了前端為了相容適配帶來的風險性。 另一方面,採用前端做UI層,可以減少UI對於系統的適配情況。 ## Electron的應用場景 由於採用了Node.js和前端的開發模式,本身是一個嵌套了瀏覽器的本地化前端應用,適合一些沒有底層操作的應用場景,甚至前端頁面可以是遠端地址,這樣子完全可以完成桌面應用的無縫**熱更新** # 技術的侷限性 Electron採用的核心架構是Node.js,所以一旦涉及非頁面展示層的功能,比如要與com互動,要操作底層庫,比如各種硬體互動的SDK XX.dll,這裡就需要參考Node原生來編寫原生擴充套件了。 ## Node原生編寫 參照Node.js官網的原生擴充套件,編寫一個簡單的例子 執行npm init 建立一個預設的package.json 以下程式碼儲存為 hello.cc ```c #include