前言
首先聲明一下這篇文章不談代碼,只談心。
從接觸Electron到真正去做出一個(gè)桌面應(yīng)用,再到今天寫(xiě)下這邊文章,大概花了三個(gè)月時(shí)間吧,到不是因?yàn)橛卸嚯y,主要是這純碎是個(gè)人興趣,自己是在業(yè)余時(shí)間干的,公司里面目前還沒(méi)有推行,這段時(shí)間開(kāi)發(fā)任務(wù)又比較重,所以斷斷續(xù)續(xù)用了三月吧。今天寫(xiě)下這篇文章只是記錄一下這個(gè)過(guò)程,也是和初學(xué)者分享一下。相信大多數(shù)人都是知道Electron最初是起源于Atom,然后從Atom剝離開(kāi)來(lái)最終形成了現(xiàn)在的Electron,目前使用Electron來(lái)開(kāi)發(fā)的桌面用非常多,我們最熟悉的比如Atom,VScode…,這類(lèi)IDE,除此之外還有一些開(kāi)發(fā)的輔助工具也借助于electron,比如iview的官方腳手架用來(lái)創(chuàng)建vue項(xiàng)目,騰訊的weFlow工具,等等。這些輔助工具將平時(shí)的一些命令行操作集成到了圖像化界面操作中來(lái),使用起來(lái)更加方便簡(jiǎn)潔??偟膩?lái)說(shuō),electron對(duì)于我們前端來(lái)說(shuō)用到的知識(shí)沒(méi)什么特別的,但是做出來(lái)的東西感覺(jué)挺新鮮的,畢竟一下從做web頁(yè)面,升華到做桌面應(yīng)用了,內(nèi)心還是有點(diǎn)小激動(dòng)的。
目錄:
我是什么時(shí)候開(kāi)始接觸electron的
最先接觸的是Weex這一類(lèi)的垮終端移動(dòng)APP開(kāi)發(fā)框架,后來(lái)開(kāi)始使用VScode編輯器,才聽(tīng)說(shuō)Electron有多么的強(qiáng)大,然后跑去Electron的官網(wǎng)一看,首頁(yè)那句醒目的標(biāo)題“使用 JavaScript, HTML 和 CSS 構(gòu)建跨平臺(tái)的桌面應(yīng)用”瞬間吸引到了我,然后就開(kāi)始干,從最開(kāi)始的官方demo到electron-vue再到自己開(kāi)始做了一個(gè)前端開(kāi)發(fā)的輔助工具應(yīng)用,一步步趟過(guò)來(lái),有點(diǎn)喜悅,也有點(diǎn)頭疼,雖然已經(jīng)有類(lèi)似Atom,VScode這樣的產(chǎn)品了,但是發(fā)現(xiàn)在開(kāi)發(fā)過(guò)程中遇到的問(wèn)題,度娘上還是找不到幾篇真正能解決問(wèn)題的帖子,最后還是自己去踩,但是比起weex來(lái)還是好多了,不是黑weex,主要是他的生態(tài)建設(shè)太差了,新入門(mén)的需要花費(fèi)大量的時(shí)間去學(xué)習(xí),并且需要在實(shí)際應(yīng)用中不斷去發(fā)現(xiàn)問(wèn)題,然后解決問(wèn)題,關(guān)鍵是解決問(wèn)題的過(guò)程中很少能獲得社區(qū)的幫助。言歸正傳,我們還是回到electron的話題上來(lái)。
為什么作為一個(gè)前端要花時(shí)間在Electron這種桌面應(yīng)用開(kāi)發(fā)框架上去
作為一個(gè)web前端開(kāi)發(fā)人員,去弄桌面應(yīng)用是不是有點(diǎn)不誤正業(yè)。這個(gè)其實(shí)不然,首先electron的精華就是”使用 JavaScript, HTML 和 CSS 構(gòu)建跨平臺(tái)的桌面應(yīng)用”,這就是赤裸裸的在勾引我們前端開(kāi)發(fā)人員,臣妾就是為你服務(wù)的。其次在node出來(lái)之后,前端的定位其實(shí)開(kāi)始變得模糊起來(lái)了,前端開(kāi)發(fā)人員不再僅僅局限于UI和頁(yè)面,UE和業(yè)務(wù)邏輯的實(shí)現(xiàn)了,開(kāi)始越來(lái)越多的接觸后端的知識(shí),‘大前端’這個(gè)名詞也開(kāi)始經(jīng)常在各種公開(kāi)場(chǎng)合見(jiàn)到,就連ES也開(kāi)始和java這對(duì)兄弟也開(kāi)始相認(rèn)了(越來(lái)越像了),所以多接觸一點(diǎn)也算是與時(shí)俱進(jìn)吧。
像Electron這種結(jié)合了Node,Chromium,html,css,js的框架,對(duì)于有志成為‘大前端’的同學(xué)來(lái)說(shuō),是比較有吸引力的,它是基于node的,對(duì)于熟悉node生態(tài)圈的人來(lái)說(shuō),開(kāi)發(fā)起來(lái)就更加如魚(yú)得水了。這里可能唯一比較陌生的可能就是Chromium了,我們可以拿面向?qū)ο蟮乃枷雭?lái)看待它,electron已經(jīng)幫我們封裝了對(duì)于Chromium的操作,so.我們只需要了解electron的API就行了,剛開(kāi)始接觸沒(méi)有必要去糾結(jié)自己對(duì)于它有多了解,當(dāng)?shù)搅擞胑lectorn開(kāi)發(fā)桌面應(yīng)用如魚(yú)得水的時(shí)候,我們有時(shí)間可以去了解一下他。所以這些所謂的陌生并不會(huì)成為我們學(xué)習(xí)和使用electorn 阻礙作為一個(gè)程序員,就是要勇于去接觸新的東西,這樣平時(shí)枯燥的編碼生活才會(huì)多一點(diǎn)點(diǎn)色彩。
所以,作為前端完全可以大膽去嘗試使用electron來(lái)開(kāi)發(fā)桌面應(yīng)用,技多不壓身,在將來(lái)的某些時(shí)候或許可以為你提供一種全新的解決方案。
為什么越來(lái)越對(duì)她越來(lái)越有感覺(jué)了
為什么一定要做成桌面應(yīng)用,web網(wǎng)頁(yè)不是也能干他的活嗎
在最開(kāi)始的時(shí)候我也有這樣的疑問(wèn),用web網(wǎng)頁(yè)來(lái)實(shí)現(xiàn)不是更好嗎,只要有瀏覽器就可以訪問(wèn),而且只要終端上面有瀏覽器就能訪問(wèn),這樣還省去了應(yīng)用的安裝步驟多好啊。在接觸久了之后發(fā)現(xiàn),網(wǎng)頁(yè)能干的他能干,而且干的更好,web不能干的,他也能干。比如:
1.他可以擺脫瀏覽器的沙盒機(jī)制,可以訪問(wèn)操作系統(tǒng)層面的東西。我們?cè)诰W(wǎng)頁(yè)上面只能借助于后臺(tái)服務(wù)去干這種事,然后通過(guò)http告訴前端頁(yè)面,如果要處理本地文件,還得將文件傳到服務(wù)器上去,讓服務(wù)器處理。
2.更好的用戶體驗(yàn),不管我們是做成B/S的web還是做成客戶端的形式,最終的目的其實(shí)是在實(shí)現(xiàn)功能需求的同時(shí)還是最求更好的用戶體驗(yàn),在用戶體驗(yàn)上桌面應(yīng)用無(wú)疑更上一層。就像你webApp和原生APP比較,原生無(wú)疑還是體驗(yàn)更好。
既然electron就可以做桌面應(yīng)用,那是不是就沒(méi)有C#和C++什么事了
在electron之前,桌面應(yīng)用基本上是靠C#和QT來(lái)做。那為什么不用他們來(lái)做,非得整個(gè)electron呢。
使用eletron需要儲(chǔ)備哪些知識(shí)
學(xué)習(xí)electron的過(guò)程中需要注意什么
electron的弊端
前面都是說(shuō)electron是多么多么方便快捷,現(xiàn)在提一下,我在使用中遇到的弊端
總結(jié)
就一句話,前端現(xiàn)在真是牛逼大了,老本行web就不說(shuō)了,用nodejs可以搭建后臺(tái)服務(wù),用RN,weex可以做移動(dòng)端APP,現(xiàn)在electron連PC桌面端應(yīng)用也不放過(guò)了,現(xiàn)在誰(shuí)還敢說(shuō)我們前端就是寫(xiě)寫(xiě)頁(yè)面,寫(xiě)寫(xiě)樣式的。吼!吼!
聯(lián)系客服