前端跨界開發(fā)指南:Javascript工具庫原理解析與實戰(zhàn)
定 價:129 元
叢書名:Web開發(fā)技術(shù)叢書
- 作者:史文強 著
- 出版時間:2022/7/1
- ISBN:9787111708049
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP312.8
- 頁碼:412
- 紙張:
- 版次:
- 開本:16
本書是字節(jié)跳動資深前端工程師嘔心瀝血之作,也是目前市場上少有的從原理到實戰(zhàn)深度剖析JavaScript生態(tài)中經(jīng)典工具庫的技術(shù)圖書。全書共有6篇,分別是基礎(chǔ)篇、圖形學篇、多媒體篇、跨端開發(fā)篇、游戲開發(fā)篇和跨界實踐篇,書中不僅詳細介紹了JavaScript語言在瀏覽器頁面之外的不同應(yīng)用場景,更從實用技巧、設(shè)計理念、原理源碼等角度對精心挑選的30多個工具庫進行了全方位的解析,希望讀者在領(lǐng)略JavaScript代碼之美的同時,也能拓寬技術(shù)視野。為了幫助讀者更好地理解書中所講述的內(nèi)容,隨書代碼倉庫里提供了大量可運行的源碼,包括精簡版的庫重寫和完整的代碼示例。
前言
基礎(chǔ)篇
第1章 Mock.js:如何與后端瀟灑分手2
1.1 為什么你總是下不了班3
1.2 聯(lián)調(diào)加速4
1.3 使用Mock.js4
1.3.1 Mock.js的語法規(guī)范5
1.3.2 Mock.js實戰(zhàn)6
1.3.3 自定義擴展8
1.4 Mock.js的基本原理9
1.4.1 從模板到數(shù)據(jù)9
1.4.2 為Ajax請求提供Mock數(shù)據(jù)11
1.5 從Mock服務(wù)到API管理平臺14
第2章 Node.js:連接16
2.1 大話Node.js16
2.1.1 Node.js是什么16
2.1.2 Node.js能做什么17
2.1.3 招黑的JavaScript全棧工程師19
2.2 業(yè)界用Node.js做什么19
2.2.1 前端工程化20
2.2.2 中間層20
2.2.3 SSR引擎21
2.2.4 協(xié)作連接22
2.3 小結(jié)22
第3章 ESLint:你的代碼里藏著你的優(yōu)雅24
3.1 代碼風格與破窗理論25
3.2 用editorconfig配置IDE28
3.2.1 基本語法及屬性29
3.2.2 配置實例29
3.3 使用ESLint規(guī)范編程風格30
3.3.1 配置文件和規(guī)則集30
3.3.2 ESLint插件開發(fā)實戰(zhàn)32
3.3.3 初學者的修行32
3.4 新秀工具Prettier33
3.5 靜態(tài)類型檢查工具的實現(xiàn)原理34
3.5.1 編譯語言和解釋語言34
3.5.2 編譯流程34
3.5.3 編譯簡單的JavaScript程序35
第4章 模塊演義與Require.js39
4.1 模塊化的需求推演40
4.1.1 script標簽40
4.1.2 代碼隔離41
4.1.3 依賴管理42
4.2 模塊規(guī)范大雜燴43
4.2.1 概述43
4.2.2 幾個重要的差異44
4.3 模塊化規(guī)范的兼容與工具演進48
4.4 Require.js的使用方法50
4.5 Require.js的核心原理52
第5章 Lodash.js是工具,更是秘籍55
5.1 Lodash.js是什么55
5.1.1 概述56
5.1.2 代碼的較量56
5.2 重點API的剖析59
5.3 Lodash.js的源碼結(jié)構(gòu)62
5.3.1 基本結(jié)構(gòu)62
5.3.2 Lodash.js源碼的學習方法63
第6章 靜態(tài)類型檢查:Flow.js和TypeScript64
6.1 靜態(tài)類型檢查65
6.1.1 靜態(tài)類型檢查的優(yōu)勢65
6.1.2 靜態(tài)類型檢查的劣勢66
6.2 Flow.js,易上手的靜態(tài)類型檢查工具67
6.2.1 Flow.js中的類型標注67
6.2.2 Flow.js的優(yōu)勢68
6.3 TypeScript,另一種選擇69
第7章 用函數(shù)描述世界:Ramda.js71
7.1 本能的思考方式71
7.2 開始編碼72
7.2.1 傳統(tǒng)編程的實現(xiàn)72
7.2.2 函數(shù)式編程的推演73
7.2.3 函數(shù)式編程的意義76
7.2.4 函數(shù)式編程的基本理論77
7.3 基于Ramda.js體驗函數(shù)式編程79
7.3.1 使用Ramda.js80
7.3.2 函數(shù)化的流程控制81
7.4 選擇82
第8章 Rxjs:前端世界的“老人與!83
8.1 信息管道84
8.1.1 不同的“單一職責”84
8.1.2 分布式狀態(tài)的可能性86
8.1.3 你的程序在做什么87
8.2 數(shù)據(jù)的生產(chǎn)88
8.2.1 數(shù)據(jù)源的抽象88
8.2.2 設(shè)計模式的應(yīng)用90
8.3 Rxjs:一切皆是流的世界91
8.3.1 Rxjs的核心概念92
8.3.2 Rxjs應(yīng)用實例94
8.3.3 新版“老人與!100
8.4 以自己喜歡的方式去編程101
第9章 不可變數(shù)據(jù)的制造藝術(shù):Immer.js和Immutable.js102
9.1 克隆103
9.1.1 淺克隆103
9.1.2 深克隆103
9.2 元編程與Immer.js104
9.2.1 元編程105
9.2.2 Immer.js的核心原理106
9.3 Immutable.js與共享結(jié)構(gòu)112
9.3.1 Immutable.js簡介113
9.3.2 Immutable.js的核心原理113
9.3.3 Immutable.js中的讀寫操作117
9.4 小結(jié)119
第10章 Day.js:算個日期能有多難121
10.1 日期和時間121
10.2 使用Day.js125
10.3 國際化應(yīng)用開發(fā)中的時間處理127
圖形學篇
第11章 所見即所得的流程圖:jsplumb.js和viz.js130
11.1 方案構(gòu)思130
11.2 開始使用jsplumb.js132
11.3 圖布局引擎viz.js135
11.4 所見即所得137
第12章 easel.js:一個標簽一個世界139
12.1 能玩一生的標簽