我們先看看前端使用html,css,javascript可以寫(xiě)什么類(lèi)型的移動(dòng)應(yīng)用。
移動(dòng)web app
移動(dòng)webapp,其實(shí)就是我們前端同學(xué)所熟悉的h5應(yīng)用,它的技術(shù)實(shí)現(xiàn)是基于html,css,javascript 常見(jiàn)的網(wǎng)頁(yè)淘寶,網(wǎng)頁(yè)京東等,開(kāi)發(fā)這類(lèi)應(yīng)用我們往往不是使用原生的css,javascript開(kāi)發(fā),因?yàn)樵_(kāi)發(fā)需要寫(xiě)大量難以維護(hù)的兼容代碼等。
這里推薦大家使用less作為css預(yù)處理的語(yǔ)言,因?yàn)閏ss在嚴(yán)格上不算一種編程語(yǔ)言,而是一種設(shè)計(jì)語(yǔ)言,而less的出現(xiàn)彌補(bǔ)了css在運(yùn)算,函數(shù),變量等編程語(yǔ)言上的缺陷。
vuejs reat作為javascript的類(lèi)庫(kù),原生js因?yàn)樾枰獙?xiě)大量的兼容代碼,同時(shí)頻繁的dom操作使開(kāi)發(fā)人員很苦惱,jquery的出現(xiàn)一定程度減緩了這個(gè)問(wèn)題,但jquery始終無(wú)法解決開(kāi)發(fā)人員面對(duì)dom的問(wèn)題,同時(shí)jquery過(guò)于重量,在最求性能的移動(dòng)應(yīng)用中問(wèn)題凸顯,以react,vuejs為代表的mvvm框架,突破了dom的束縛,同時(shí)更加輕量,受到了廣大開(kāi)發(fā)人員的喜愛(ài)。如果大家想了解更多vuejs分教程,可以關(guān)注我查看vuejs系列教程。
移動(dòng)hybrid app
webapp在原生接口調(diào)用方法并不理想,大量的優(yōu)秀原生接口無(wú)法使用,于是以hbuilder之類(lèi)的web打包工具受到了想發(fā)類(lèi)似原生應(yīng)用的程序員喜歡,web打包工具實(shí)現(xiàn)原理很簡(jiǎn)單,原生開(kāi)發(fā)人員將一些常用的原生方法封裝好成一個(gè)類(lèi),然后將這個(gè)對(duì)象暴露給webview的window對(duì)象中,前端的同學(xué)無(wú)需了解額外的只是,只需簡(jiǎn)單調(diào)用暴露對(duì)象的接口就好了。
移動(dòng)native app
hybrid app 解決了webapp無(wú)法調(diào)用的原生接口的問(wèn)題,但任無(wú)法解決webapp在ui渲染能力上的性能缺陷,由于webapp和hybrid app的ui都是基于webview的渲染出來(lái)的網(wǎng)頁(yè),webview只是原生組件中的一種,先天性決定了webapp和hybridapp在性能上無(wú)法與原生應(yīng)用相比,但react-native和weex出現(xiàn)解決了這個(gè)問(wèn)題,使開(kāi)發(fā)人員使用html css js作為開(kāi)發(fā)語(yǔ)言,開(kāi)發(fā)出原生的應(yīng)用,在性能毫不遜色的情況下,這種解決方案還有比原生開(kāi)發(fā)多了跨平臺(tái),熱更新等諸多優(yōu)勢(shì),使得這種開(kāi)發(fā)方式成為了app的開(kāi)發(fā)主流,例如淘寶app,京東app等,都是采用這類(lèi)方案。