欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

前端Electron新手入門(mén)教程詳解

 更新時(shí)間:2019年06月21日 11:13:04   作者:蘇格團(tuán)隊(duì)  
這篇文章主要介紹了Electron新手入門(mén)教程詳解,首先圍繞Electron框架的關(guān)鍵知識(shí)點(diǎn)進(jìn)行詳細(xì)講解,然后對(duì)DEMO程序進(jìn)行分析,讓前端開(kāi)發(fā)人員對(duì)使用Electron開(kāi)發(fā)桌面應(yīng)用程序有一個(gè)初步的了解。,需要的朋友可以參考下

Electron 是什么

定義

Electron是一個(gè)能讓你使用傳統(tǒng)前端技術(shù)(Nodejs, Javascript, HTML, CSS)開(kāi)發(fā)一個(gè)跨平臺(tái)桌面應(yīng)用的框架。這里所說(shuō)的桌面應(yīng)用指的是在Windows、OSX及Linux系統(tǒng)上運(yùn)行的程序。

歷史

2013年的時(shí)候,Atom編輯器問(wèn)世,作為實(shí)現(xiàn)它的底層框架Electron也逐漸被熟知,到2014年時(shí)被開(kāi)源,那時(shí)它還是叫Atom Shell。

接下來(lái)的幾年,Electron在不斷的更新迭代,幾乎每年都有一個(gè)重大的里程碑

  • 2013年4月11日,Electron以Atom Shell為名起步。
  • 2014年5月6日,Atom以及Atom Shell以MIT許可證開(kāi)源。
  • 2015年4月17日,Atom Shell改名為Electron。
  • 2016年5月11日,1.0版本發(fā)布。
  • 2016年5月20日,允許向Mac應(yīng)用商店提交軟件包。
  • 2016年8月2日,支持Windows商店。

在最新的穩(wěn)定版本V3.x中,Electorn集成了Nodejs v10.2.0和內(nèi)核為v66.0.3359.181的Chromium

基于Electron實(shí)現(xiàn)的軟件

Electron現(xiàn)已被多個(gè)開(kāi)源應(yīng)用軟件所使用,其中被廣大程序員所熟知和使用的Atom和VsCode編輯器就是基于Electron實(shí)現(xiàn)的。嘗試打開(kāi)VsCode,點(diǎn)擊幫助菜單中的切換開(kāi)發(fā)人員工具,可以在界面上看到我們熟悉的Chrome devtool,如下圖

底層實(shí)現(xiàn)

由于應(yīng)用場(chǎng)景是在系統(tǒng)平臺(tái)上開(kāi)發(fā)應(yīng)用,所以我們開(kāi)發(fā)時(shí)需要有能調(diào)用原生系統(tǒng)api的能力。為了能讓前端語(yǔ)言能跟底層可以交互,Electron集成了Nodejs+Chromium。Nodejs主要負(fù)責(zé)應(yīng)用程序主線程邏輯控制、底層交互等功能,Chromium主要負(fù)責(zé)渲染線程窗口的業(yè)務(wù)邏輯。主要的架構(gòu)如下圖:

這樣的架構(gòu)讓單獨(dú)升級(jí)Chromium版本成為可能。假設(shè)你的程序當(dāng)前使用的是Electron v3.x的版本,這個(gè)版本的Electron所帶的Chromium是66版本。這時(shí)如果你用的某些特性必須要使用Chromium 69版本,除了整體升級(jí)Electron到指定最新版本外,你還可以單獨(dú)的對(duì)Chromium版本進(jìn)行升級(jí)。

但是一般情況我們不建議這么做,因?yàn)槌晒Φ纳?jí)需要你具備C和C++相關(guān)的知識(shí),并且對(duì)Chromium的底層實(shí)現(xiàn)具有一定的了解。即使你成功升級(jí)了Chromium的版本,但是對(duì)于軟件整體的穩(wěn)定性是無(wú)法保證的。

為什么要用

以Windows平臺(tái)為例,大部分人會(huì)首先想到使用QT(C++),WPF(C#) 等語(yǔ)言去開(kāi)發(fā)應(yīng)用。不可否認(rèn)的是,這些已經(jīng)是非常成熟的開(kāi)發(fā)方案了。但是,我們來(lái)看下如下兩種場(chǎng)景:

  • 公司要做個(gè)全新的APP,但是技術(shù)人員構(gòu)成大部分都是前端開(kāi)發(fā)
  • 公司原本就有在線的web應(yīng)用,但是想包個(gè)殼能在桌面直接打開(kāi),同時(shí)增加一些與系統(tǒng)交互的功能

對(duì)于第一種場(chǎng)景,團(tuán)隊(duì)中開(kāi)發(fā)人員對(duì)于C++和C#并不熟悉,雖然可以現(xiàn)學(xué),但是整個(gè)項(xiàng)目的技術(shù)管理和項(xiàng)目管理就會(huì)變得不可控。

對(duì)于第二種場(chǎng)景,對(duì)于應(yīng)用的業(yè)務(wù)邏輯要求并不多,只是套一個(gè)具有瀏覽器的運(yùn)行環(huán)境,單獨(dú)為此配置一個(gè)C++、C#開(kāi)發(fā)人員劃不來(lái)。

對(duì)于這兩種情況,如果現(xiàn)有的前端開(kāi)發(fā)人員能直接搞定,那就非常完美了。

Electron的誕生提供了這種可能性。它可以幫助前端開(kāi)發(fā)者在不需要學(xué)習(xí)其他語(yǔ)言和技能的前提下,快速開(kāi)發(fā)跨平臺(tái)的桌面應(yīng)用。

怎么用

在后面的章節(jié)中,我們會(huì)根據(jù)主要的知識(shí)點(diǎn)并輔以實(shí)際案例來(lái)具體講解如何使用Electron進(jìn)行開(kāi)發(fā)。這里我們只簡(jiǎn)單的介紹下如何使用Electron寫(xiě)一個(gè)經(jīng)典的Hello World。

首先,新建一個(gè)目錄,初始化npm

mkdir helloword
npm init

修改package.json文件,增加npm run start命令

{
"name": "electron demo",
"version": "1.0.0",
"description": "",
"main": "main.js", //修改為main.js
"scripts": {
"start": "electron ." //增加start命令
},
"author": "",
"license": "ISC",
"dependencies": {
"electron": "^3.0.10"
}
}

通過(guò)npm安裝Electron

npm i electron --save-dev

在根目錄創(chuàng)建main.js和index.html

main.js

const { app, BrowserWindow } = require('electron')
function createWindow () { 
// 創(chuàng)建瀏覽器窗口
win = new BrowserWindow({ width: 800, height: 600 })
// 然后加載應(yīng)用的 index.html。
win.loadFile('index.html')
}
app.on('ready', createWindow)

index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World!</title>
</head>
<body>
<h1>Hello World!</h1>
</body>
</html>

到這里,我們所有的準(zhǔn)備工作都完成了,接下來(lái)就是運(yùn)行它!

npm run start

看看效果

關(guān)于Electron的簡(jiǎn)單介紹就到這里為止,想必大家已經(jīng)對(duì)Electron有了一些初步的認(rèn)識(shí)。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 在windows上用nodejs搭建靜態(tài)文件服務(wù)器的簡(jiǎn)單方法

    在windows上用nodejs搭建靜態(tài)文件服務(wù)器的簡(jiǎn)單方法

    這篇文章主要介紹了在windows上用nodejs搭建靜態(tài)文件服務(wù)器的簡(jiǎn)單方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-08-08
  • npm配置國(guó)內(nèi)鏡像資源+淘寶鏡像的方法

    npm配置國(guó)內(nèi)鏡像資源+淘寶鏡像的方法

    這篇文章主要介紹了npm配置國(guó)內(nèi)鏡像資源+淘寶鏡像的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • Node.js查詢MySQL并返回結(jié)果集給客戶端的全過(guò)程

    Node.js查詢MySQL并返回結(jié)果集給客戶端的全過(guò)程

    nodejs最大的優(yōu)勢(shì)也是大家用著最為難以理解的一點(diǎn),就是它的異步功能,它幾乎所有的io操作都是異步的,這也就導(dǎo)致很多人不理解也用不習(xí)慣,下面這篇文章主要給大家介紹了關(guān)于Node.js查詢MySQL并返回結(jié)果集給客戶端的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • Node 模塊原理與用法詳解

    Node 模塊原理與用法詳解

    這篇文章主要介紹了Node 模塊原理與用法,結(jié)合實(shí)例形式詳細(xì)分析了node.js模塊基本概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-05-05
  • 參考EventEmitter實(shí)現(xiàn)完整訂閱發(fā)布功能函數(shù)

    參考EventEmitter實(shí)現(xiàn)完整訂閱發(fā)布功能函數(shù)

    這篇文章主要為大家介紹了參考EventEmitter實(shí)現(xiàn)完整訂閱發(fā)布功能函數(shù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • 詳解如何在Node.js中執(zhí)行CPU密集型任務(wù)

    詳解如何在Node.js中執(zhí)行CPU密集型任務(wù)

    Node.js通常被認(rèn)為不適合CPU密集型應(yīng)用程序,Node.js的工作原理使其在處理I/O密集型任務(wù)時(shí)大放異彩,雖然執(zhí)行CPU密集型任務(wù)肯定不是Node的主要使用場(chǎng)景,但是我們依舊有方法來(lái)改善這些問(wèn)題,本文詳細(xì)給大家介紹了如何在Node.js中執(zhí)行CPU密集型任務(wù)
    2023-12-12
  • node.js調(diào)用C++開(kāi)發(fā)的模塊實(shí)例

    node.js調(diào)用C++開(kāi)發(fā)的模塊實(shí)例

    這篇文章主要介紹了node.js調(diào)用C++開(kāi)發(fā)的模塊實(shí)例,在node的程序中,如果有大數(shù)據(jù)量的計(jì)算,處理起來(lái)比較慢,可以用C++來(lái)處理,然后通過(guò)回調(diào)(callback的形式),返回給node,需要的朋友可以參考下
    2015-07-07
  • 使用DNode實(shí)現(xiàn)php和nodejs之間通信的簡(jiǎn)單實(shí)例

    使用DNode實(shí)現(xiàn)php和nodejs之間通信的簡(jiǎn)單實(shí)例

    這篇文章主要介紹了使用DNode實(shí)現(xiàn)php和nodejs之間通信的簡(jiǎn)單實(shí)例,本文講解了DNode的安裝,以及使用的它的步驟和方法,需要的朋友可以參考下
    2015-07-07
  • Node卸載超詳細(xì)步驟(附圖文講解!)

    Node卸載超詳細(xì)步驟(附圖文講解!)

    由于之前的node為8.0版本,不太滿足需求,所以需要安裝高版本的node,下面這篇文章主要給大家介紹了關(guān)于Node卸載超詳細(xì)步驟的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • Node.js Buffer用法解讀

    Node.js Buffer用法解讀

    這篇文章主要介紹了Node.js Buffer用法解讀,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05

最新評(píng)論