發表於2024-11-10
百度外賣優秀前端專傢團隊經驗完全分享。本書配備特色綫上讀者圈增值服務,看書有問題,找得到作者。
Vue.js是一個漸進式的JavaScript 框架,與其他重量級框架不同的是,Vue 采用自底嚮上增量開發的設計。Vue 的核心庫隻關注視圖層,它不僅易於上手,還便於與第三方庫或既有項目整閤。作為2016年社區*火的前端框架,越來越多的公司都在嘗試用Vue來開發自己的項目。本書主要以項目維度,站在實戰的角度,從項目的搭建,項目開發,到項目的優化,結閤實際,多維度介紹瞭Vue.js。本書從實戰場景齣發,結閤各種實用demo,結閤開發環境構建,從無到有,剖析原理,全麵介紹Vue2.0的實用技巧。後麵幾章重點講解Vue內部實現機製,針對各種業務形態的支持以及網站調優方等等,是Vue技術體係追隨者不可多得的實戰寶典。
12年畢業於北京航空航天大學軟件工程專業,先後就職於人人網、百度,現在在百度外賣擔任高級前端工程師。擁有五年前端工程經驗,對前端開發基礎架構造型、技術應用、團隊高效協作有自己獨到的見解。熱愛前端和開源,喜歡用平颱化和工程化手段解決業務中的問題。
目 錄
第1章 搭建開發環境 1
1.1 本地Node環境 1
1.1.1 Node.js 1
1.1.2 npm 7
1.1.3 yarn 12
1.1.4 npm vs yarn 17
1.2 ide相關配置 17
1.2.1 常用ide 17
1.2.2 Sublime text 17
1.2.3 Atom 20
1.2.4 WebStorm 22
1.2.5 VSCode 23
1.3 本章小結 27
第2章 從零搭建Vue工程 28
2.1 本地開發需要哪些工具 28
2.2 搭建Vue工程 29
2.2.1 Vue-cli 29
2.2.2 腳手架項目構成分析 30
2.3 webpack配置 32
2.3.1 webpack簡介 32
2.3.2 webpack配置解析 33
第3章 API詳解 45
3.1 全局變量 45
3.1.1 silent 45
3.1.2 optionMergeStrategies 45
3.1.3 devtools 46
3.1.4 errorHandler 48
3.1.5 ignoredElements 48
3.1.6 keyCodes 49
3.1.7 performance 49
3.1.8 productionTip 49
3.2 模闆語法 50
3.3 指令 50
3.3.1 v-text 51
3.3.2 v-html 51
3.3.3 v-pre 51
3.3.4 v-cloak 52
3.3.5 v-once 53
3.3.6 v-if 54
3.3.7 v-else 54
3.3.8 v-else-if 55
3.3.9 v-show 55
3.3.10 v-for 56
3.3.11 v-bind 64
3.3.12 v-model 70
3.3.13 v-on 74
3.3.14 自定義指令 77
3.4 過濾器 79
3.5 計算屬性 80
3.5.1 基礎例子 80
3.5.2 計算屬性vs Methods 81
3.5.3 計算屬性緩存 81
3.5.4 Computed屬性vs Watched屬性 82
3.5.5 計算setter 83
3.6 觀察者Watchers 84
3.7 組件的功能與使用 86
3.7.1 使用組件 86
3.7.2 組件開發 88
3.7.3 非Props屬性 92
3.7.4 自定義事件 92
3.7.5 Slots內容分發 96
3.7.6 動態組件 99
3.7.7 組件的其他知識 100
3.8 繼承與混閤 104
3.8.1 Vue.extend 105
3.8.2 options裏的extends 105
3.8.3 源碼分析 105
3.8.4 閤並策略 106
3.9 插件plugin 111
第4章 Vue組件庫 115
4.1 Element 115
4.1.1 Element的設計 115
4.1.2 Element的UI 116
4.1.3 Element的優缺點 117
4.2 Mint UI 118
4.2.1 Mint UI的特性 118
4.2.2 Mint UI的優缺點 119
4.3 iView 119
4.3.1 iView簡介 120
4.3.2 iView的優缺點 120
4.4 Vux 121
4.4.1 Vux簡介 121
4.4.2 Vux優缺點 122
4.5 XCUI 122
4.5.1 XCUI簡介 122
4.5.2 XCUI優缺點 123
第5章 官方周邊庫 124
5.1 Axios 124
5.1.1 功能 124
5.1.2 安裝 124
5.1.3 Example 125
5.1.4 Axios API 126
5.1.5 請求配置 127
5.1.6 響應結構 130
5.1.7 配置的默認值/defaults 131
5.1.8 攔截器 132
5.1.9 錯誤處理 133
5.1.10 取消 134
5.1.11 Promises 135
5.1.12 TypeScript 135
5.2 Vuex的使用 135
5.2.1 State 135
5.2.2 Getters 137
5.2.3 Mutations & Actions 138
5.2.4 Modules 141
5.2.5 模塊重用 145
5.3 Vue-router使用 146
5.3.1 安裝 146
5.3.2 開始 146
5.3.3 動態路由匹配 147
5.3.4 編程式導航 151
5.3.5 命名路由 152
5.3.6 命名視圖 153
5.3.7 重定嚮和彆名 153
5.3.8 HTML5 History模式 154
5.3.9 後端配置例子 155
5.3.10 警告 155
5.3.11 導航鈎子 156
5.3.12 過渡動效 159
5.3.13 數據獲取 160
5.3.14 滾動行為 163
5.3.15 懶加載 164
第6章 Vue項目優化 166
6.1 狀態過渡 166
6.1.1 過渡的概念 166
6.1.2 CSS過渡 166
6.1.3 Javascript鈎子 167
6.2 Vue項目的自動化測試 170
6.2.1 unit tests 172
6.2.2 e2e測試 175
6.3 Typescript Support 179
6.3.1 Typescript 179
6.3.2 安裝Typescript 180
6.3.3 Typescript和Vue結閤 180
6.4 MPA 186
6.4.1 關於MPA的優劣勢 187
6.4.2 如何實現MPA 187
6.5 Vue的異構 190
6.5.1 不屬於異構的情況 191
6.5.2 通過封裝成Vue組件的方式實現異構 192
6.5.3 通過directive的方式實現異構 194
6.5.4 循環嵌套Vue組件 197
6.6 服務端渲染 198
6.6.1 服務端渲染的概念 198
6.6.2 用Vue-ssr的意義 198
6.6.3 Vue-ssr的作用 198
6.6.4 Vue-ssr學習難度 198
6.6.5 技術棧 199
6.6.6 前後端數據策略 199
6.6.7 性能影響 199
6.6.8 安裝 200
6.6.9 渲染一個Vue實例 200
6.6.10 一個例子 202
6.7 Vue的pre-render 204
第7章 原理解析 206
7.1 Virtual DOM原理 206
7.1.1 DOM 206
7.1.2 Virtual DOM算法 209
7.2 Vue精髓之響應式數據流 210
7.2.1 數據流演進史 210
7.2.2 Vue和React介紹 211
7.2.3 Vue的響應式數據流的優勢 211
7.2.4 Object.defineProperty與訂閱發布設計模式 213
7.2.5 Vue源碼 214
7.2.6 Vue的render函數就是Watcher的expOrFn 218
7.3 Vuex2.0源碼解析 219
7.3.1 Vuex的含義 219
7.3.2 源碼分析 220
7.3.3 Vuex API分析 233
7.3.4 輔助函數 235
7.3.5 插件 239
7.3.6 一些函數的封裝 242
7.4 Vue-router原理 244
7.4.1 Vue-router 244
7.4.2 Vue-router應用舉例 244
7.4.3 Vue-router原理 245
第8章 進軍WEEX 256
8.1 搭建WEEX基礎環境 256
8.1.1 初始化:hello world 256
8.1.2 dotwe 257
8.2 分析首個WEEX工程代碼 258
8.2.1 目錄結構 258
8.2.2 通過serve起服務 258
8.2.3 webpack配置 259
8.2.4 頁麵開發 260
8.3 debug WEEX代碼 260
8.3.1 web端調試 260
8.3.2 手機端調試 261
8.4 集成WEEX到已有應用 263
8.4.1 集成到Android 263
8.4.2 集成到iOS 268
8.5 使用WEEXpack構建移動應用 271
6.4 MPA
MPA(Multi-Page Application),多頁麵應用。我們通常在開發的時候都是單頁麵應用,即一個頁麵實例化一個Vue對象完成所有的頁麵邏輯。但是,有些應用場景裏麵需要切換到多頁麵應用,即一個模塊,一個頁麵,一個Vue實例。多頁麵應用開發跟原始的多頁麵開發類似,不同功能在不同的頁麵裏,跳轉頁麵完成頁麵刷新加載內容。
關於MPA在Vue裏有一些問題需要探討,例如多頁麵的文件結構、公共資源、切換規則及優劣勢等。
6.4.1 關於MPA的優劣勢
說起MPA就不得不提到SPA(Single-Page Application),我們在開發中無非就是從這兩個方嚮裏選擇,那麼MPA相對於SPA有哪些優勢?更加適用於哪些場景呢?
MPA的優勢明顯:
● 開發難度減小,相對於單頁麵應用,所有的邏輯關係都放在一個頁麵裏,多頁麵開發將邏輯顆粒化,這樣每個模塊開發難度降低很多;
● 數據流更為簡單,因為進行瞭顆粒化,所有的模塊之間邏輯不存在數據共享,數據互相限製,因此數據流邏輯上更為簡單;
● 不會因為業務復雜,某一個模塊齣現錯誤導緻整個業務不能使用,而單頁麵會齣現這樣的問題。
MPA的劣勢也很明顯:
● 多頁麵切換會影響用戶體驗;
● 多頁麵基於一些規定的配置,很多的多頁麵應用都是基於webpack規則製定,這增加瞭開發成本;
● 多頁麵應用也會增加冗餘代碼。
6.4.2 如何實現MPA
接下來通過結閤案例代碼實現一個多頁麵應用,由於當前代碼案例裏是SPA,重構成MPA代價較大,而且可能會影響其他部分關聯代碼的問題,因此我們會通過介紹一個MPA案例來幫助大傢理解MPA的實現機製。具體的項目地址:vue-cli-multi-page。
6.4.2.1 目錄結構
首先觀察一下目錄結構:
序 言
在很長時間以內,前端開發的工作內容是為靜態的HTML增加動態的效果,所以基於jQuery的Bootstrap非常流行。真正讓前端開發産生變化的是2014和2015年Angular.js和React的崛起,這使得MV*模式變得流行,讓前端渲染開始流行。MV*模式讓前端開發的思維發生瞭一個翻天覆地的變化,讓前端工作變得更有挑戰,它不再是為後端開發者寫HTML的模闆,而是更多地關注在工程化、可維護性、數據流等方麵。
“餓瞭麼”大前端團隊在2015年主要使用的是Angular.js 1.2版本,在使用其開發瞭外賣PC站、早餐業務移動站之後,我們體會到瞭Angular.js的一些痛點。主要的痛點是組件封裝的不便、一些曆史遺留的設計問題和性能問題,所以我們開始嘗試一些新的解決方案。在2015年的下半年,Vue.js發布1.0之後,我們嘗試使用Vue.js來完成一些業務的開發。當時Vue.js生態還不是很成熟,我們就邊寫業務邊做瞭一些組件發布到瞭開源社區。
當初我們選用Vue.js 1.0的主要原因是團隊比較熟悉Angular.js,在我看來Vue.js 1.0版本還隻是Angular.js 1.x的改良版。但是在2016年初,Vue.js 2.0公開之後,我覺得Vue.js 2.0將會成為能與React競爭的現代前端框架,所以決定基於Vue.js為團隊做一些基礎設施建設。
我們團隊先後開發瞭移動端和PC端的兩套前端組件庫:Mint UI和Element UI,並在開發完成之後發布到瞭開源社區,為Vue.js的社區活躍做齣瞭一些貢獻,也在開源社區取得瞭一些影響。截止目前,Element UI仍然是Vue.js社區中Star最多、最活躍、最成熟的組件庫,我可以負責任地說,Element UI一直應用在我們的生産項目中。
迴顧加入餓瞭麼大前端以來的兩年多裏,推動團隊選用Vue.js作為前端框架可能是我做的最明智的決定。當初放棄Angular.js選擇Vue.js是個艱難的決策,幸運的是我們能在這段時間裏與Vue.js社區共同成長。
如果你是初學者,想入門Vue.js,那麼本書可以讓你充分體會Vue.js的魅力;如果你想對Vue.js有更為深入的瞭解,本書對Virtual DOM和Vue Router的原理解析應該對你有所幫助。最後,本書涵蓋瞭Vue.js 2.1、2.3的一些新特性,還對阿裏巴巴的開源項目Weex進行瞭一定的講解,這保證瞭本書具有較新的時效性。在細讀瞭一遍後,我覺得這本書適閤各個階段的前端開發者,在此真誠地推薦給大傢。
張 龍
餓瞭麼高級研發經理&Element UI創始人
前 言
1. 前端框架的發展
寫這本書之前,思考過一段時間,最後問題迴歸到Vue是什麼?從哪來?到哪去?然後,想到瞭前端框架的發展,當然在這裏不敢妄談演進,隻說一下本人對前端的認識過程。
本人是2008年接觸前端開發的,那個時候中國公司極少數存在前端開發這個崗位,很多地方還叫網頁開發,大部分還是從數據存儲到頁麵展示一把抓。這個時期,以能將文本文檔寫html、css、js為大牛的標準,你知道的細節越多,意味著你越高深,當然這是學生階段,大傢都講求一個裝字。之後接觸一些js框架,諸如prototype、mootools、jquery等是這個時代的主流,後來jquery因為它的易用,高效異軍突起,占據主導;這個時代框架主要給大傢解決的是兼容性的處理和代碼的簡化。
其次,隨著電腦性能、瀏覽器支持及網速的不斷攀升,前端頁麵越來越像一個桌麵應用,各種交互功能需要在頁麵中實現,就産生瞭各種mv*的框架,如backbone、AngularJS等,它們要解決的問題也是很有針對性的,讓界麵、操作、數據分開,在復雜的交互中,找到一條不變的原則。
再次,隨著Nodejs的興起以及前端環境的進一步發展,前端模塊化的概念得到廣泛的發展,這段時間與上一段內容並非完全的分先後,有部分重疊;就本人而言,最後解除模塊化,模塊化的齣現也是適應前端工程化進展的重要標誌。從一個或者幾個文件就能完成一個頁麵,到一個頁麵需要一個工程;這種變化也意味著前端進入瞭技術壁壘,從此,後端開發者(php,java)已經很難上手一個前端項目。
最後,mvvm框架模型概念火爆起來,react首先為大傢熟知,並迅速傳播火熱,隨後Vue以其靈活性高、開發效率高等進入大傢視野,占得一席之地;是react好還是Vue更好,也成為人們津津樂道的話題,至於答案,我認為適閤的就是最好的。
2. 本書麵嚮的人群
本書前五章內容涉及基礎開發環境的搭建和API的介紹及開發過程中遇到的問題,書中的代碼是對Vue官方文檔裏樣例的擴展,對於初步使用Vue的人群有很好的指導意義。後五章內容是實戰的技巧及原理的剖析,適用對框架有一定經驗、對原理有研究的人參考。
本書由長期從事Vue開發和研究的百度外賣研發團隊撰寫完成,充分結閤實際,緊跟Vue.js最新特性,對Vue.js作為技術棧的架構有深入的理解,並在此基礎上搭建瞭符閤實際業務場景的整套技術棧,對於想重構已有工程的團隊,也有很好的指導作用。
3. Vue適用的場景
大量的項目與實踐錶明,Vue可以適用於各個場景。我們的Vue用在H5運營後颱、離綫組件等各種業務形態中,最近所做的ssr也是以Vue為基礎來做的。我所在的團隊以業務為先,沒有獨立的基礎技術部門,所有技術嘗試都是直接作用於綫上業務項目中,在進行過多次嘗試改造後,慢慢形成瞭一種以Vue為主的架構體係,配閤我們自己封裝的構建工具fekey,組閤成一套前端全棧解決方案;尤其在運營後颱項目中,形成瞭一套快速搭建頁麵的框架(BLOCKS),人力工效提升5~8倍。當然Vue並不適用於所有項目,具體項目具體決策,受成本、時間、團隊的影響,選擇自己閤適的框架進行開發,這也是一個團隊技術領袖應該具有的能力。
本書是團隊第一次寫書,參加本書編寫人員還有白楊、李雅男、董慶明、陳立文、肖仁暉。書中錶達與樣例難免會有紕漏和謬誤,如果發現,歡迎聯係我們反饋,萬分感謝!我們的郵箱是:lld490112728@163.com
百度外賣高級技術經理
李利德
前端工程師必備技能:Vue移動開發實戰技巧 下載 mobi pdf epub txt 電子書 格式 2024
前端工程師必備技能:Vue移動開發實戰技巧 下載 mobi epub pdf 電子書不錯
評分適閤基礎入門
評分一般。該詳細點的不詳細 光vscode的插件列錶都列齣來好幾頁 sorry我不用啊。另外一個貫穿全書的實例沒有。期待的element ui 部分隻是點到為止。 重新買瞭另一本
評分正版好書。
評分不錯
評分啊好好好好好好好好好好好
評分書還可以,很實用,非常適閤我
評分京東就是速度快,上午下單,下午到的,點贊
評分好好放個溝溝壑壑叫姐姐斤斤計較斤斤計較
前端工程師必備技能:Vue移動開發實戰技巧 mobi epub pdf txt 電子書 格式下載 2024