隨着ReactNative、Weex與Flutter等跨端框架的發展,大前端的概念也逐漸普及開來,純粹的Native開發相對變得比較少,前端也成爲了客戶端同窗必需要掌握的一門技術,可是客戶端同窗作的是跨端開發,在學習路線上和前端同窗又稍有不一樣,下面從客戶端同窗的視角去討論如何學習前端知識。javascript
這裏爲你們整理了一份跨端技術圖譜,這份圖譜並無去窮盡全部的前端技術,只是從客戶端開發的視角去梳理經常使用的技術點,幫助你們理清脈絡。php
更多關於跨端技術的討論能夠參見BeesHybrid項目。css
IDE推薦VSCode,輕量級、插件豐富,經常使用插件以下所示:html
更多關於VSCode的使用技巧能夠參見強大的VSCode。前端
對於客戶端同窗來講,要想上手React、Vue這些框架,須要先掌握HTML、CSS與JavaScript等基礎知識,這部分的內容建議經過書籍來學習 ,一點一滴打撈基礎,要有耐心。vue
書籍:《HTML5權威指南》java
書籍:《CSS權威指南》、《精通CSS》node
書籍:《JavaScript高級程序設計》、《你不知道的Javascript》react
除了基礎的JavaScript知識,你還須要掌握ES6相關概念,這塊能夠參考ECMAScript 6 入門。webpack
咱們還須要瞭解NPM相關知識,NPM就像Android裏的Maven倉庫同樣,它是一個JavaScript倉庫。
Node.js的包管理工具。
Vue.js(讀音 /vjuː/,相似於 view 的讀音)是一套構建用戶界面(user interface)的漸進式框架。
用於構建用戶界面的 JavaScript 庫。
從PC時代開始,Native與Web就一直是相互競爭、相互融合的關係,咱們先來簡單看看它們之間的優點與劣勢。
Native | Web | |
---|---|---|
性能 | 高 | 低 |
用戶體驗 | 好 | 差 |
功能 | 能夠充分利用平臺自身的能力 | 只有使用W3C的標準能力 |
迭代 | 週期長,須要發佈 | 週期短,隨時發佈 |
維護成本 | 高 | 低 |
跨平臺 | 差 | 好 |
線程 | 多線程 | 單線程 |
能夠看出,Native與Web之間各有優劣,在移動互聯網發展的過程當中,開發者們也一直在尋找融合雙方優點的方案,經歷瞭如下四個階段的發展:
注:值得一提的是,同層渲染如今已經逐漸在Android和iOS平臺的WebView上實現,將來Hybrid會有更多的玩法。
使用JavaScript和React編寫原生移動應用.
Weex是一個基於現代web開發經驗構建高性能移動應用程序的框架。
Flutter容許您經過一個代碼庫在iOS和Android上構建漂亮的本地應用程序。
小程序也屬於跨端框架的範疇,但它與Weex這些框架不一樣,比起像ReactNative這種技術創新,它更像是一種商業創新,它源於各大巨頭對於流量與入口的競爭。詳情可參見2018年上半年小程序生態白皮書。
咱們先就他們的技術方案作個簡單的對比,以下所示:
事實上,小程序承載的更可能是業務形態,咱們從業務開發角度對小程序的前端架構作個總結。
小程序是一種新的開放能力,開發者能夠快速地開發一個小程序。小程序能夠在微信內被便捷地獲取和傳播,同時具備出色的使用體驗。
支付寶小程序是一種全新的開放模式,它運行在支付寶客戶端,能夠被便捷地獲取和傳播,爲終端用戶提供更優的用戶體驗.
快應用是基於手機硬件平臺的新型應用形態;標準是由主流手機廠商組成的快應用聯盟聯合制定;快應用標準的誕生將在研發接口、能力接入、開發者服務等層面建設標準平臺;以平臺化的生態模式對我的開發者和企業開發者全品類開放。
前端技術從底層到頂層一共能夠分爲20個,以下所示: