国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
跨越平臺(tái)桌面應(yīng)用開(kāi)發(fā)框架electron使用的心路歷程


前言

    首先聲明一下這篇文章不談代碼,只談心。
    從接觸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)的。

目錄:

  1. 我是什么時(shí)候開(kāi)始接觸electron的
  2. 為什么作為一個(gè)前端要花時(shí)間在Electron這種桌面應(yīng)用開(kāi)發(fā)框架上去
  3. 為什么越來(lái)越對(duì)她越來(lái)越有感覺(jué)了
  4. 為什么一定要做成桌面應(yīng)用,web網(wǎng)頁(yè)不是也能干他的活嗎
  5. 使用eletron需要儲(chǔ)備哪些知識(shí)
  6. 學(xué)習(xí)electron的過(guò)程中需要注意什么
  7. electron的弊端

我是什么時(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é)了

  1. 他讓我擺脫了不同瀏覽器之間的差異和版本的限制,由于electron是基于Chromium的(Chromium是chrome的開(kāi)發(fā)者版本),他完全遵循W3C的標(biāo)準(zhǔn),對(duì)ES,CSS,BOM,DOM的最新規(guī)范都有很好的支持,所以我們?cè)趯?xiě)代碼的時(shí)候,什么ES6,7,8,DOM0,2,3都大膽的用起來(lái),爽歪歪。
  2. 基于Node,生態(tài)成熟,有足夠豐富的第三方包來(lái)支持我們的開(kāi)發(fā)。沒(méi)必要自己再絞盡腦汁的去想某個(gè)功能的實(shí)現(xiàn),別人寫(xiě)的npm包早已幫我們實(shí)現(xiàn),這就是”拿來(lái)主義”的好處。
  3. 可以開(kāi)發(fā)跨平臺(tái)的桌面應(yīng)用,就像weex宣傳的那樣“write once,run everyWhere”,只需要寫(xiě)一份代碼,打包出來(lái)的應(yīng)用可以在windows,linux,mac OS上面運(yùn)行。當(dāng)然這是最理想的情況,無(wú)論是RN,weex還是electron,要做到多端共用,還是需要在代碼中做一定的適配的,大概有百分之八十是共用的吧,剩下的百分之二十還是需要兼容一下。

為什么一定要做成桌面應(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呢。

  1. 效率,就我個(gè)人的使用經(jīng)驗(yàn)來(lái)看,用electron來(lái)開(kāi)發(fā)相同需求的桌面應(yīng)用,使用electron來(lái)開(kāi)發(fā)效率明顯比其他的要提高很多,而且做出來(lái)的桌面效果更佳。
  2. C#的開(kāi)發(fā)者現(xiàn)在基本上在各個(gè)公司都是稀有物種了,現(xiàn)在都跑去開(kāi)發(fā)移動(dòng)端應(yīng)用去了,PC端的桌面應(yīng)用感覺(jué)沒(méi)什么油水了,能用web開(kāi)發(fā)的就用web了,這樣自然開(kāi)發(fā)的人就少了,開(kāi)發(fā)人員少了如果還用他去開(kāi)發(fā),這樣后期維護(hù)起來(lái)會(huì)比較困難。
  3. 除了C#不是還有QT嗎,這個(gè)我沒(méi)有寫(xiě)過(guò),但是我們組老大就是用QT框架來(lái)桌面應(yīng)用的,但是當(dāng)他看見(jiàn)electron的時(shí)候,感慨還是這個(gè)寫(xiě)起來(lái)方便。
  4. 當(dāng)然java也有類(lèi)似Swing之類(lèi)的桌面UI組件,但是效果比較一般,也能做比較酷的效果但是比較耗時(shí)。
    當(dāng)然這并不是說(shuō)electron 就可以替代C#和QT,每總技術(shù)都有適合他的應(yīng)用場(chǎng)景,在做之前我們?cè)诩夹g(shù)選型的時(shí)候,需要充分的考慮他們的利與弊,后面我會(huì)說(shuō)說(shuō)我在使用electron使用中遇見(jiàn)的弊端。

使用eletron需要儲(chǔ)備哪些知識(shí)

  1. 首先需要熟練掌握前端的基礎(chǔ)知識(shí)html,css,js,為什么要強(qiáng)調(diào)熟練,因?yàn)樽鳛榍岸耍氵B這都沒(méi)掌握,那我還是建議好好學(xué)習(xí)一下前端基礎(chǔ)知識(shí)吧,等基礎(chǔ)打牢了再出來(lái)浪。
  2. 有一定的node基礎(chǔ),也就是對(duì)nodejs有一定了解,知道他是什么,用來(lái)干什么的,怎么環(huán)境搭建,npm包的使用,我是建議系統(tǒng)的學(xué)一下nodejs,看看官方文檔,然后Express或者Koa這種web服務(wù)框架看看,自己搭建一個(gè)web服務(wù)玩玩,現(xiàn)在流行大前端,走出去不知道nodejs,所實(shí)話有點(diǎn)不好意思。
  3. 在具備了上面兩門(mén)絕技之后,就可以跟著官方demo,把electron的demo拉下來(lái)根據(jù)步驟,將代碼跑起來(lái),看看electron做的桌面應(yīng)用到底長(zhǎng)什么樣子,感受一下。
  4. 在demo跑起來(lái)后然后再根據(jù)demo的結(jié)構(gòu)看看里面使到的API,這里我不建議一開(kāi)始就去擼官方的API文檔,這樣你可能很快就放棄了,一看,呀這么多API那記得住啊,然后就在心里開(kāi)始打退堂鼓了。一步一步來(lái),用到什么,然后去看什么,這里我后面會(huì)將我從搭建環(huán)境到最后制作打包出APP的心路歷程分享出來(lái),有興趣的可以留意一下,下個(gè)月吧。

學(xué)習(xí)electron的過(guò)程中需要注意什么

  1. 首先不要急功冒進(jìn),一來(lái)就要干點(diǎn)什么大事,先按照文檔,將demo跑起來(lái),看看怎么搭建開(kāi)發(fā)環(huán)境,怎么打包成一個(gè)可執(zhí)行程序,這里打包出來(lái)的執(zhí)行程序可能有點(diǎn)難看,但是不要在意,先將就用著,我會(huì)在后面的筆記整理中提到如何打包成我們平時(shí)看到那樣的安裝程序。
  2. 建議現(xiàn)在網(wǎng)上找一些鼻尖簡(jiǎn)單的demo看看,然要一上來(lái)就擼官方API文檔,這樣太枯燥了,而且好多API你一開(kāi)始也用不上,看看簡(jiǎn)單的demo,將基本的API掌握,再去完善其他。
  3. 需要分清楚主進(jìn)程和渲染進(jìn)程,分清楚他們的職能,這樣我們?cè)趯?xiě)代碼的時(shí)候才不會(huì)混淆,代碼的層次結(jié)構(gòu)才能分的領(lǐng)清。
  4. 有node經(jīng)驗(yàn)的小伙伴不要先入為主將主進(jìn)程當(dāng)著nodejs中的服務(wù)端了,我開(kāi)始就這么干的,一看到node就激動(dòng)了,這樣你會(huì)遇見(jiàn)很多坑的,而且可能還爬不出來(lái)。

electron的弊端

    前面都是說(shuō)electron是多么多么方便快捷,現(xiàn)在提一下,我在使用中遇到的弊端

  1. 窗口創(chuàng)建背景的問(wèn)題,在html沒(méi)有被加載完成前,窗口只用用背景色去填充,不能使用個(gè)性化的背景圖案,這會(huì)造成首次加載的體驗(yàn)不好。
  2. 打包出來(lái)的APP太大,就是最簡(jiǎn)單的應(yīng)用打包出來(lái)都有40多MB。

總結(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ě)樣式的。吼!吼!

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
大前端技術(shù)發(fā)展趨勢(shì)刨析
為什么Vue等前端框架,越來(lái)越受企業(yè)的歡迎?
Github發(fā)布了為桌面應(yīng)用開(kāi)發(fā)而生的Electron 1.0版本
前端開(kāi)發(fā)框架之Electron的認(rèn)識(shí)
卸掉Electron!事實(shí)已證明,它也很牛逼?。?!
目前最流行的前端開(kāi)發(fā)框架
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服