一看就懂的 Electronjs 入門

最近入手 Electron,發(fā)現(xiàn)本文唱较,覺得很不錯天梧,分享給大家戚丸。

作者:JESSICA LOR
譯者:Xiaohu Zhu 朱小虎
原文地址:http://jlord.us/essential-electro

1. 什么是 Electron?

Electron 是一個可用于使用JavaScript裸违,HTML 和 CSS 構(gòu)建桌面應(yīng)用程序的庫掖桦。這些應(yīng)用程序可以打包為在 Mac,Windows 和 Linux 計算機上運行供汛,也可以放置在 Mac 和 Windows 應(yīng)用程序商店中枪汪。

1.1 定義:

  • JavaScript,HTML 和 CSS 是網(wǎng)絡(luò)語言怔昨,這意味著它們是網(wǎng)站的基礎(chǔ)雀久,而 Chrome 之類的瀏覽器知道如何將這些代碼轉(zhuǎn)換為您看到的視覺圖形。
  • Electron 是一個庫 Electron 是可以復(fù)用而不必編寫自己的代碼趁舀。您可以使用它在其之上構(gòu)建項目赖捌。
  • 基于 Electron 構(gòu)建的應(yīng)用
  • Electron API 演示(請參閱對 Electron 可以做什么)

2 為什么這很重要?

通常矮烹,每個操作系統(tǒng)的桌面應(yīng)用程序均以各自的本地語言編寫越庇。這可能意味著要有三個團隊編寫您的應(yīng)用程序的三個版本罩锐。Electron 使您可以一次使用網(wǎng)絡(luò)語言編寫應(yīng)用程序。

2.1 定義:

  • 本機(操作系統(tǒng))語言這些是(主要)使用以下主要操作系統(tǒng)構(gòu)建的語言:Mac卤唉,Objective C涩惑;Linux,C桑驱;Windows竭恬,C ++。

3 怎么做熬的?

Electron 將 Chromium 和 Node.js 與一組自定義 API 結(jié)合在一起痊硕,以用于本機操作系統(tǒng)功能,例如打開文件對話框悦析,通知寿桨,圖標(biāo)等此衅。

components.png

3.1 定義:

  • API 應(yīng)用程序接口描述了可供您使用庫的一組功能强戴。
  • Chromium 由 Google 創(chuàng)建,這是 Google 瀏覽器 Chrome 使用的開源庫挡鞍。
  • Node.js(或 Node)一種工具骑歹,用于在服務(wù)器上編寫 JavaScript,訪問文件系統(tǒng)和網(wǎng)絡(luò)(您的計算機也是服務(wù)器Dⅰ)道媚。

3.2 資源:

4 情況如何?

使用 Electron 進行開發(fā)就像構(gòu)建可以在其中無縫使用 Node
main.png

的網(wǎng)頁翘县,或者構(gòu)建可以在其中構(gòu)建 HTML 和 CSS 界面的 Node 應(yīng)用程序一樣最域。而你只需要設(shè)計一個瀏覽器,在最新的 Chrome锈麸。

4.1 定義:

  • Use Node in 還不是全部镀脂!除了無處不在的完整 Node API 之外,您還可以利用 npm(Node 的軟件包管理器)上已編寫和托管的 300,000 多個模塊忘伞。
  • 一個瀏覽器并非所有瀏覽器都是相同的薄翅,Web 設(shè)計人員和開發(fā)人員通常必須加倍努力才能使一個站點在每個站點上看起來都相同。
  • 最新的 Chrome 使用 ES2015 的 90% 以上氓奈,JavaScript 的最新更新以及 CSS 變量等出色功能翘魄。

4.2 資源:

5. 先決條件

由于 Electron 的兩個組件是網(wǎng)站和 JavaScript舀奶,因此在開始之前暑竟,您需要具備這兩個方面的經(jīng)驗。查看有關(guān) HTML育勺,CSS 和 JS 的一些教程光羞,然后在計算機上安裝Node绩鸣。

5.1 定義:

  • 真實地說,學(xué)習(xí)制作網(wǎng)站和編寫 Node 并不是一朝一夕的事纱兑,但希望下面的鏈接可以幫助您入門呀闻。

5.2 資源:

6 兩個過程

Electron 有兩種類型的過程:主過程和渲染器。有模塊上每一個或兩個過程的工作潜慎。主要過程更多地是在幕后捡多,而渲染器過程是應(yīng)用程序中的每個窗口。

6.1 定義:

  • 模塊 Electron 的 API 根據(jù)其功能分組在一起铐炫。例如垒手,該 dialog 模塊具有用于本機對話框的所有 API,例如打開文件倒信,保存文件和警報科贬。

6.2 資源:

7. 主進程 Main process

主進程(通常是一個名為的文件 main.js)是每個 Electron 應(yīng)用程序的入口點。它控制著應(yīng)用的壽命鳖悠,從打開到關(guān)閉榜掌。它還會調(diào)用本機元素,并在應(yīng)用程序中創(chuàng)建每個新的渲染器進程乘综。內(nèi)置了完整的 Node API憎账。

主進程

7.1 定義:

  • 調(diào)用本機元素打開對話框和其他本機操作系統(tǒng)的交互會占用大量資源,因此它是在主進程中完成的卡辰,而渲染器進程不會中斷胞皱。

7.2 資源:

8 渲染器進程

渲染器進程是您應(yīng)用中的瀏覽器窗口。與主進程不同九妈,這些流程可以有多個反砌,并且每個進程都是獨立的。它們也可以被隱藏萌朱。通常以一個命名 index.html宴树。它們就像典型的 HTML 文件一樣,但是在 Electron 中嚷兔,與任何 Web 瀏覽器不同森渐,您在這里也可以使用整個 Node API。

渲染器進程

8.1 定義:

  • 每個渲染器進程都是獨立的冒晰,每個渲染器進程都是一個單獨的進程同衣,這意味著一個崩潰不會影響另一個。
  • 隱藏您可以將窗口設(shè)置為隱藏壶运,并使用它僅在后臺執(zhí)行代碼耐齐。

8.2 資源:

9 像這樣

在 Chrome(或其他網(wǎng)絡(luò)瀏覽器)中,每個選項卡及其網(wǎng)頁都類似于 Electron 中的單個渲染器進程。如果您關(guān)閉所有標(biāo)簽頁埠况,則 Chrome 仍然存在耸携,就像您的主進程一樣,您可以打開新窗口或退出應(yīng)用程序辕翰。

對比圖

9.1 資源:

10 保持聯(lián)系

主進程和渲染器進程需要能夠通信夺衍,因為它們都負責(zé)不同的任務(wù)。為此喜命,有 IPC沟沙,進程間通信。使用它在主進程和渲染器進程之間傳遞消息壁榕。

ipc

10.1 定義:

  • IPC主進程和渲染器進程每個都有要使用的 IPC 模塊矛紫。

11 放在一起

Electron 應(yīng)用程序類似于節(jié)點應(yīng)用程序,并使用一個 package.json 文件牌里。您可以在其中定義哪個文件是您的主進程颊咬,從而定義 Electron 在哪里啟動您的應(yīng)用程序。然后牡辽,該主進程可以創(chuàng)建渲染器進程喳篇,您將使用 IPC 在兩者之間傳遞消息。

app-files

11.1 定義:

  • package.json文件這是 Node 應(yīng)用程序中的常見文件催享,其中包含有關(guān)項目的元數(shù)據(jù)和依賴項列表杭隙。

12 快速開始

該 Electron 快速啟動庫是一個最基本的 Electron 應(yīng)用與 package.json哟绊,main.js 并且 index.html 您已經(jīng)了解了這里因妙,一個上手偉大的地方!另外票髓,請根據(jù)您選擇的框架查看樣板中的模板攀涵。

12.1 資源:

13 打包

構(gòu)建應(yīng)用后,您可以將其與適用于 Mac洽沟,Windows 或 Linux 的命令行工具 打包在一起 electron-packager以故。為此添加腳本 package.json。請查看以下資源裆操,以在 Mac 和 Windows 應(yīng)用商店中獲取您的應(yīng)用怒详。

13.1 定義:

  • 命令行工具 這是一個程序,您可以通過在終端中向其傳遞命令來與之交互踪区。

13.2 資源:


謝謝閱讀

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末昆烁,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子缎岗,更是在濱河造成了極大的恐慌静尼,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異鼠渺,居然都是意外死亡鸭巴,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進店門拦盹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鹃祖,“玉大人,你說我怎么就攤上這事普舆」叨梗” “怎么了?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵奔害,是天一觀的道長楷兽。 經(jīng)常有香客問我,道長华临,這世上最難降的妖魔是什么芯杀? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮雅潭,結(jié)果婚禮上揭厚,老公的妹妹穿的比我還像新娘。我一直安慰自己扶供,他們只是感情好筛圆,可當(dāng)我...
    茶點故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著椿浓,像睡著了一般太援。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上扳碍,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天提岔,我揣著相機與錄音,去河邊找鬼笋敞。 笑死碱蒙,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的夯巷。 我是一名探鬼主播赛惩,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼趁餐!你這毒婦竟也來了喷兼?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤澎怒,失蹤者是張志新(化名)和其女友劉穎褒搔,沒想到半個月后阶牍,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡星瘾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年走孽,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片琳状。...
    茶點故事閱讀 40,115評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡磕瓷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出念逞,到底是詐尸還是另有隱情困食,我是刑警寧澤,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布翎承,位于F島的核電站硕盹,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏叨咖。R本人自食惡果不足惜瘩例,卻給世界環(huán)境...
    茶點故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望甸各。 院中可真熱鬧垛贤,春花似錦、人聲如沸趣倾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽儒恋。三九已至善绎,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間碧浊,已是汗流浹背涂邀。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工瘟仿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留箱锐,地道東北人。 一個月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓劳较,卻偏偏與公主長得像驹止,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子观蜗,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,055評論 2 355