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