移動Web前端高效開發實戰

移動Web前端高效開發實戰

《移動Web前端高效開發實戰》 全稱《移動Web前端高效開發實戰:HTML 5 + CSS 3 + JavaScript + Webpack + React Native + Vue.js + Node.js》,作者iKcamp,電子工業出版社2017年9月出版

內容提要

移動網際網路的興起和快速普及,給前端開發人員帶來了前所未有的新機遇。移動Web前端技術作為整個技術鏈條中重要的一環,卻亂象叢生。《移動Web前端高效開發實戰:HTML 5 + CSS 3 + JavaScript + Webpack + React Native + Vue.js + Node.js》是一本梳理移動前端和Native客戶端技術體系的入門實戰書。 《移動Web前端高效開發實戰:HTML 5 + CSS 3 + JavaScript + Webpack + React Native + Vue.js + Node.js》涵蓋了移動Web前端開發中的各個關鍵技術環節,共14章。分別從HTML 5、CSS 3、JavaScript的ECMAScript 5和ECMAScript 6版本、移動端常用布局方案、MV*類新時代框架、預編譯技術、性能最佳化、開發調試、混合式套用、單元測試、工程化等方面全面地還原一線網際網路公司Web前端技術棧。 創作《移動Web前端高效開發實戰:HTML 5 + CSS 3 + JavaScript + Webpack + React Native + Vue.js + Node.js》的初衷是幫助移動Web前端開發領域的工程師們,勾畫出一張實用並且具體的技術圖,幫助讀者正確且快速地掌握學習路徑。《移動Web前端高效開發實戰:HTML 5 + CSS 3 + JavaScript + Webpack + React Native + Vue.js + Node.js》篇幅有限,力求精簡,只列舉了各技術棧中核心關鍵部分,包括大量基於Web前端的優秀開源技術類庫和框架介紹,是進入移動Web開發領域的絕佳之選。

目錄

第1章 初識移動Web前端 1

1.1 移動Web前端史 1

1.1.1 Web開發的變遷 2

1.1.2 移動Web與HTML 5不得不說的關係 3

1.1.3 移動Web與原生套用的優劣勢 5

1.2 移動Web前端現狀與未來 6

1.2.1 移動Web的現狀 6

1.2.2 您需要掌握的知識體系 7

1.2.3 技術拐點與未來趨勢 10

1.3 常見問題 11

1.3.1 移動Web前端開發有前景嗎 11

1.3.2 PC Web和移動Web開發區別 12

1.4 本章小結 13

第2章 移動Web開發環境搭建 14

2.1 Visual Studio Code免費跨平台編輯器 14

2.2 使用Node.js 16

2.2.1 Node.js的用途 16

2.2.2 安裝和調試Node.js 17

2.2.3 什麼是NPM 19

2.2.4 Web代理工具NProxy 22

2.2.5 HTTP伺服器http-server 24

2.3 本章小結 25

第3章 HTML 5 必會實際常用特性 26

3.1 新的語義 26

3.1.1 新元素的到來 26

3.1.2 表單的增強套用 28

3.1.3 使用音頻和視頻 32

3.2 訪問你的設備 34

3.2.1 定位當前地埋位置 35

3.2.2 實戰演練:調用攝像頭拍個照 37

3.2.3 實戰演練:在手機上實現搖一搖 41

3.3 離線和存儲 44

3.3.1 實戰演練:搭建一個簡單的離線套用 44

3.3.2 離線之後資源該如何更新——Service Worker 47

3.3.3 LocalStorage與SessionStorage 48

3.3.4 實戰演練:利用IndexedDB實現便簽管理 51

3.4 圖像效果 56

3.4.1 使用Canvas繪製一個簡單的餅圖 56

3.4.2 使用SVG實現奧運五環 58

3.4.3 WebGL帶來了3D圖像功能 60

3.5 不一樣的通信 62

3.5.1 PostMessages 62

3.5.2 XMLHttpRequest Level 2 65

3.5.3 Server Sent Event 69

3.5.4 WebSocket 72

3.5.5 WebRTC 73

3.6 其他常用特性 77

3.6.1 History API與單頁套用 77

3.6.2 Drag和Drop介紹 79

3.6.3 利用Web Workers加速套用計算 81

3.6.4 利用Performance API分析網站性能 82

3.7 本章小結 85

第4章 CSS 3 必會實戰技巧 86

4.1 認識CSS 3 86

4.1.1 什麼是CSS 3 87

4.1.2 移動Web的CSS 3現狀 89

4.1.3 用Modernizr檢測瀏覽器是否支持CSS 3 93

4.2 選擇器 96

4.2.1 常見選擇器 97

4.2.2 偽類和偽元素 99

4.2.3 優先權和權重 104

4.3 回響式開發 106

4.3.1 常見設備的寬高 106

4.3.2 Flex彈性盒布局 108

4.3.3 媒體查詢(Media Query) 112

4.3.4 用rem開發回響式設計 115

4.3.5 多列(Multiple Columns) 119

4.4 動效 122

4.4.1 轉換(Transform) 122

4.4.2 過渡(Transition) 126

4.4.3 動畫(Animation) 128

4.5 常用特性 131

4.5.1 開放字型格式(WOFF) 131

4.5.2 背景(Backgrounds) 134

4.5.3 顏色(Color) 138

4.5.4 文字效果(Text Effects) 141

4.5.5 框線(Border) 144

4.6 預編譯 147

4.6.1 Less介紹和安裝 147

4.6.2 Less使用 150

4.6.3 Sass介紹和安裝 154

4.6.4 Sass使用 156

4.6.5 Compass的安裝和使用 160

4.7 本章小結 163

第5章 JavaScript關鍵語法及使用技巧 164

5.1 理解JavaScript 164

5.1.1 語言基礎 165

5.1.2 函式和參數 168

5.2 事件 171

5.2.1 事件概述 171

5.2.2 事件委託 172

5.2.3 移動端事件 175

5.3 作用域、閉包和this 178

5.3.1 使用let實現塊級作用域 178

5.3.2 閉包 180

5.3.3 採用call、apply、bind改變this 182

5.4 面向對象 184

5.4.1 原型和原型鏈 184

5.4.2 Mixin模式 186

5.4.3 ECMAScript 6的Class和Extends 188

5.5 異步編程 189

5.5.1 AJAX中的Callback回調函式 189

5.5.2 Promise模式 190

5.5.3 生成器Generator 192

5.6 模組化 194

5.6.1 為什麼需要模組化 195

5.6.2 AMD和CMD規範 197

5.6.3 ECMAScript 6標準的模組支持 205

5.7 ECMAScript 6其他常用功能 207

5.7.1 基礎數據類型的擴展 207

5.7.2 使用解構賦值來簡化代碼 210

5.7.3 使用Babel外掛程式提前使用新特性 212

5.8 本章小結 215

第6章 HTML 5 移動開發實戰 216

6.1 在地圖上顯示行走軌跡 216

6.2 仿原生相冊 220

6.2.1 實現相冊初始展示頁 221

6.2.2 通過手勢操作控制相片 222

6.3 使用Socket.IO製作小型聊天室 224

6.3.1 前端HTML+JavaScript實現聊天界面 225

6.3.2 伺服器端Node.js監聽連線 227

6.4 移動端拍照上傳實踐 228

6.4.1 前端HTML+CSS+JavaScript 229

6.4.2 伺服器端Node.js 232

6.5 利用Microdata進行SEO最佳化 232

6.5.1 認識Microdata 233

6.5.2 提升網頁SEO效果 233

6.6 製作一個帶字幕的視頻播放器 237

6.7 使用Pixi.js製作“抓住開學君”遊戲(Canvas+WebGL) 242

6.8 用Canvas製作刮刮卡 248

6.9 實戰演練:實現3D全景效果 251

6.9.1 需要的CSS 3特性 251

6.9.2 實現原理 251

6.9.3 實現代碼 253

6.10 本章小結 255

第7章 移動網頁樣式布局實戰 256

7.1 靜態布局的實際套用 256

7.1.1 設計活動頁面靜態布局 257

7.1.2 靜態布局在移動端上的自適應 257

7.2 水平居中與垂直居中實戰 259

7.2.1 水平居中 259

7.2.2 自適應塊級元素水平居中 260

7.2.3 行內元素垂直居中 261

7.2.4 塊級元素的垂直居中 263

7.2.5 基於視口單位的解決方案 264

7.2.6 基於Flexbox的解決方案 265

7.3 柵格系統實現回響式列表 267

7.3.1 實現柵格布局 267

7.3.2 柵格布局的原理 269

7.4 Flex多欄布局實戰 269

7.5 實戰演練:滬江網校首頁rem布局實踐 272

7.6 實戰演練:側邊欄的滑進滑出效果 276

7.7 實戰演練:模擬原生的頁面切換效果 280

7.7.1 實現頁面切換過渡效果 280

7.7.2 模擬切換原理解析 283

7.8 提高Web動畫的性能實戰 284

7.8.1 使用CSS 3動畫 284

7.8.2 使用高性能的JavaScript動畫 285

7.9 實戰演練:課程分類列表實戰 286

7.9.1 實現主頁結構 287

7.9.2 回響式CSS實現(Compass) 289

7.9.3 添加頁面動態效果 293

7.10 本章小結 294

第8章 前端工程化實戰 295

8.1 前端工程化 295

8.1.1 前端工程化的必要性 296

8.1.2 前端工程化的發展史 298

8.2 工程化入門Grunt 300

8.2.1 安裝和配置 301

8.2.2 Grunt外掛程式 302

8.2.3 實戰演練:使用Grunt開發一個簡易相冊 305

8.3 使用Gulp構建一個ECMAScript 6和Sass套用 309

8.3.1 安裝和配置 309

8.3.2 預處理任務 310

8.3.3 實戰演練:採用ECMAScript 6開發一個Markdown編輯器 312

8.3.4 代碼檢查任務 315

8.3.5 代碼合併、壓縮、重命名任務 317

8.3.6 監聽檔案變化自動構建 318

8.4 實戰演練:使用Webpack構建一個React套用 320

8.4.1 安裝和配置 320

8.4.2 常用的載入器和外掛程式 323

8.4.3 快取控制 327

8.4.4 簡化模組引用 330

8.4.5 異步模組載入 332

8.4.6 使用Source Map調試代碼 335

8.5 本章小結 338

第9章 移動Web常用開發方式實戰 339

9.1 基於DOM的開發方式 339

9.1.1 使用Zepto和前端模板開發簡單備忘錄 340

9.1.2 解決原生單擊事件的缺陷 341

9.1.3 為何拋棄掉Zepto 343

9.2 基於React的開發方式 345

9.2.1 使用JSX語法創建React組件 345

9.2.2 在實踐中掌握React生命周期 348

9.2.3 實現組件間通信 353

9.2.4 實現組件關注分離 355

9.2.5 實戰演練:運用組件化方式開發一個備忘錄 358

9.2.6 如何管理套用的狀態 364

9.2.7 添加動畫效果 366

9.2.8 提高React組件性能 369

9.3 基於Vue.js的開發方式 372

9.3.1 實戰演練:開發一個簡單的備忘錄套用(Vue.js 2.0) 372

9.3.2 管理套用的狀態及實現組件間的通信 375

9.3.3 添加動畫效果 379

9.4 打造單頁套用SPA 381

9.4.1 單頁套用的優勢是什麼 382

9.4.2 實戰演練:實現一個單頁路由 382

9.4.3 實戰演練:使用React開發一個簡單的單頁套用 384

9.4.4 單頁套用的狀態管理 386

9.5 本章小結 388

第10章 混合式開發實戰 389

10.1 為什麼需要混合式開發 389

10.1.1 混合式開發種類 389

10.1.2 混合式開發的優勢 390

10.1.3 選擇合適的混合式開發方案 391

10.2 Cordova開發入門 392

10.2.1 JavaScript和Native互相調用 392

10.2.2 Cordova介紹和安裝 394

10.2.3 Cordova開發使用 397

10.3 React Native實戰 400

10.3.1 React Native簡介 400

10.3.2 React Native樣式和布局 402

10.3.3 React Native組件概念 404

10.3.4 簡單組件實戰 404

10.3.5 複合組件實戰 405

10.3.6 第三方組件實戰 406

10.3.7 常用API實踐 407

10.4 實戰演練:用React Native開發新聞閱讀套用 410

10.4.1 React Native的工程項目結構一覽 410

10.4.2 列表頁 411

10.4.3 新聞評論頁 414

10.4.4 新聞展示頁 414

10.5 本章小結 415

第11章 前端開發調試實戰 417

11.1 瀏覽器調試 417

11.1.1 Chrome開發者工具 418

11.1.2 Safari開發者工具 421

11.2 代理工具 424

11.2.1 Mac OS下Charles的用法 424

11.2.2 Windows下Fiddler的用法 426

11.3 多終端同步工具 428

11.3.1 多設備瀏覽器同步測試工具BrowserSync 429

11.3.2 雙向自動刷新樣式工具Emmet LiveStyle 431

11.4 模擬器調試 432

11.4.1 Android模擬器調試 432

11.4.2 iOS模擬器調試 434

11.4.3 線上模擬器Manymo 436

11.5 多平台調試 437

11.5.1 網站回響式設計測試工具Ghostlab 437

11.5.2 移動端Web開發調試工具Weinre 439

11.5.3 JavaScript遠程調試和測試工具Vorlon.JS 442

11.6 雲真機調試 444

11.6.1 瀏覽器兼容性雲端測試套用BrowserStack 444

11.6.2 Web端移動設備管理控制工具STF 446

11.6.3 多瀏覽器兼容性測試平台F2etest 448

11.7 React調試 452

11.7.1 React Developer Tools 452

11.7.2 Redux DevTools 455

11.8 本章小結 458

第12章 前端單元測試實戰 459

12.1 JavaScript單元測試框架Jasmine實戰 459

12.2 使用Mocha和Chai在Node.js進行單元測試 462

12.3 使用Sinon輔助單元測試 465

12.4 使用Karma自動化單元測試 468

12.5 使用Istanbul計算代碼覆蓋率 470

12.6 使用Benchmark.js進行基準測試 473

12.7 實戰演練:React版備忘錄項目的完整單元測試 475

12.8 本章小結 479

第13章 前端性能最佳化實戰 480

13.1 常用網站性能最佳化指標 480

13.1.1 網頁的資源請求與載入階段 481

13.1.2 網頁渲染階段 482

13.1.3 JavaScript腳本的執行速度 484

13.2 依舊有效的Yahoo性能最佳化法則 484

13.3 性能最佳化工具使用實戰 486

13.3.1 YSlow 486

13.3.2 PageSpeed 487

13.3.3 WebPagetest 488

13.4 HTTP協定頭快取實戰 489

13.4.1 客戶端快取流程 489

13.4.2 快取協定內容 490

13.4.3 實戰演練:HTTP快取 491

13.5 資源按需載入實戰 492

13.5.1 基於RequireJS的按需載入 492

13.5.2 基於Webpack的按需載入 493

13.5.3 圖片懶載入 494

13.6 不同網路類型的最佳化實戰 495

13.6.1 獲取網路類型 495

13.6.2 弱網圖片最佳化 496

13.6.3 弱網快取最佳化 496

13.7 實戰演練:Nginx配置Combo合併HTTP請求 497

13.7.1 安裝Nginx和檔案合併模組 498

13.7.2 配置Nginx和Combo 499

13.8 本章小結 499

第14章 項目實戰:搭建直播平台(Cordova+Koa+React) 500

14.1 項目的安裝和啟動 500

14.1.1 安裝依賴 501

14.1.2 啟動項目 501

14.1.3 Cordova打包 502

14.2 直播平台功能預覽 502

14.2.1 直播流程 503

14.2.2 直播核心頁面 503

14.3 頁面的布局和結構 504

14.3.1 首頁 504

14.3.2 發起直播頁面 505

14.3.3 觀看直播頁面 505

14.4 搭建WebRTC服務端——Koa 506

14.5 實現多人線上直播功能 512

14.6 實現彈幕客戶端與服務端通信 517

14.6.1 客戶端與服務端通信的過程 517

14.6.2 客戶端代碼設計——React 518

14.6.3 服務端代碼設計 520

14.7 本章小結 521

相關詞條

熱門詞條

聯絡我們