給客戶端同窗的一份前端學習指南

BeesX BeesHybrid

隨着ReactNative、Weex與Flutter等跨端框架的發展,大前端的概念也逐漸普及開來,純粹的Native開發相對變得比較少,前端也成爲了客戶端同窗必需要掌握的一門技術,可是客戶端同窗作的是跨端開發,在學習路線上和前端同窗又稍有不一樣,下面從客戶端同窗的視角去討論如何學習前端知識。javascript

這裏爲你們整理了一份跨端技術圖譜,這份圖譜並無去窮盡全部的前端技術,只是從客戶端開發的視角去梳理經常使用的技術點,幫助你們理清脈絡。php

更多關於跨端技術的討論能夠參見BeesHybrid項目。css

開發工具

IDE推薦VSCode,輕量級、插件豐富,經常使用插件以下所示:html

  • Terminal:命令行工具。
  • Git History:查看單行提交記錄和文件提交記錄。
  • Git Project Manager:Git項目管理工具。
  • Git Len:解決平常開發協做痛點,推薦安裝。
  • vscode-icons:讓你的文件都帶上好看的圖標。
  • Path Intellisense:文件路徑自動補全。
  • Auto Close Tag:自動閉合HTML標籤。
  • Baracket Pair Colorizer:成對括號分顏色顯示,方便區分。
  • Settings Sync:同步你的配置和擴展,參見同步教程。
  • VS Color Picker:取色器。
  • ES7 React/Redux/GraphQL/React-Native snippets:React代碼提示。
  • Vue 2 Snippets:Vue2代碼提示。

更多關於VSCode的使用技巧能夠參見強大的VSCode前端

前端基礎

對於客戶端同窗來講,要想上手React、Vue這些框架,須要先掌握HTML、CSS與JavaScript等基礎知識,這部分的內容建議經過書籍來學習 ,一點一滴打撈基礎,要有耐心。vue

HTML

書籍:《HTML5權威指南》java

CSS

書籍:《CSS權威指南》、《精通CSS》node

JavaScript

書籍:《JavaScript高級程序設計》、《你不知道的Javascript》react

除了基礎的JavaScript知識,你還須要掌握ES6相關概念,這塊能夠參考ECMAScript 6 入門webpack

NPM

咱們還須要瞭解NPM相關知識,NPM就像Android裏的Maven倉庫同樣,它是一個JavaScript倉庫。

Node.js的包管理工具。

前端框架

Vue

Vue.js(讀音 /vjuː/,相似於 view 的讀音)是一套構建用戶界面(user interface)的漸進式框架。

React

用於構建用戶界面的 JavaScript 庫。

跨端框架

從PC時代開始,Native與Web就一直是相互競爭、相互融合的關係,咱們先來簡單看看它們之間的優點與劣勢。

Native Web
性能
用戶體驗
功能 能夠充分利用平臺自身的能力 只有使用W3C的標準能力
迭代 週期長,須要發佈 週期短,隨時發佈
維護成本
跨平臺
線程 多線程 單線程

能夠看出,Native與Web之間各有優劣,在移動互聯網發展的過程當中,開發者們也一直在尋找融合雙方優點的方案,經歷瞭如下四個階段的發展:

  • Hybrid 1.0:爲Web頁面提供Naive API的能力,也就是用JS Bridge去加強系統的WebView的功能。缺點是:體驗差,如滾動、動畫與交互等,穩定性差,如列表內存佔用大等。
  • Hybrid 2.0:將Native組件覆蓋在WebView之上,例如微信的cover-view,提供更多的擴展能力。缺點是:用戶體驗融合性很差,如層級、事件、佈局等。
  • Hybrid 3.0:前端DSL開發,Native渲染,例如React Native與Weex。缺點:對W3C標準能力支持有限,存在平臺差別,三端並不徹底統一。
  • Hybrid 4.0:百花齊放的小程序、快應用、輕應用方案,這個容器也有兩種:WebView容器與類ReatNative容器。技術方案上並無太多的花樣,這種方案的興起由微信帶起,本質上 仍是源於各大公司對於流量入口和生態的競爭。後續咱們會着重聊一下。

注:值得一提的是,同層渲染如今已經逐漸在Android和iOS平臺的WebView上實現,將來Hybrid會有更多的玩法。

ReactNative

使用JavaScript和React編寫原生移動應用.

Weex

Weex是一個基於現代web開發經驗構建高性能移動應用程序的框架。

Flutter

Flutter容許您經過一個代碼庫在iOS和Android上構建漂亮的本地應用程序。

小程序

小程序也屬於跨端框架的範疇,但它與Weex這些框架不一樣,比起像ReactNative這種技術創新,它更像是一種商業創新,它源於各大巨頭對於流量與入口的競爭。詳情可參見2018年上半年小程序生態白皮書

咱們先就他們的技術方案作個簡單的對比,以下所示:

  • 微信小程序:基於WebView渲染,自建的DSL,與Vue 1.0有點像,不是很好用,後續又出了WePY、mpVue、Taro等DSL。
  • 支付寶小程序:基於WebView與ReactNative兩套容器渲染,自建了一套類React的DSL。
  • 快應用:基於Native進行渲染,本身定義了一套類Vue的DSL。
  • 淘寶輕應用:基於WebView與Weex兩套容器渲染,自建了一套類Vue的DSL。

事實上,小程序承載的更可能是業務形態,咱們從業務開發角度對小程序的前端架構作個總結。

微信小程序

小程序是一種新的開放能力,開發者能夠快速地開發一個小程序。小程序能夠在微信內被便捷地獲取和傳播,同時具備出色的使用體驗。

支付寶小程序

支付寶小程序是一種全新的開放模式,它運行在支付寶客戶端,能夠被便捷地獲取和傳播,爲終端用戶提供更優的用戶體驗.

快應用

快應用是基於手機硬件平臺的新型應用形態;標準是由主流手機廠商組成的快應用聯盟聯合制定;快應用標準的誕生將在研發接口、能力接入、開發者服務等層面建設標準平臺;以平臺化的生態模式對我的開發者和企業開發者全品類開放。

淘寶小程序

模塊化

  • commonjs
  • AMD(CMD)
  • UMD
  • ES Module

任務管理器

  • npm scripts
  • grunt
  • gulp

模塊打包工具

  • r.js
  • webpack
  • rollup
  • browserify

CSS預處理器

  • Sass
  • Less
  • Stylus
  • Postcss

靜態檢查器

  • flow
  • typescript

測試工具

  • mocha
  • jasmine
  • jest
  • ava

代碼檢測工具

  • eslint
  • jslint

附錄

資源

技術棧

前端技術從底層到頂層一共能夠分爲20個,以下所示:

  • 瀏覽器
  • 渲染引擎、JavaScript引擎
  • HTML/JavaScript/CSS三支柱
  • 編輯器
  • 編譯任務
  • 編譯工具
  • 打包、調試、質量
  • 測試
  • JS基礎類庫
  • JS類庫
  • UI框架
  • CSS預處理器
  • 模板
  • 現代化
  • 安全/模式
  • 中間語言
  • 跨平臺解決方案

圖片來源

相關文章
相關標籤/搜索