百度外賣優秀前端專傢團隊經驗完全分享。本書配備特色綫上讀者圈增值服務,看書有問題,找得到作者。
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項目中的組件設計模式”的講解,它不僅僅是教你如何寫組件,更重要的是教會你如何從一個更高的維度去思考組件的設計,如何讓組件更易於復用、更易於維護。書中介紹的幾種常見的組件設計模式,比如容器組件與展示組件分離、高階組件的應用等,都給我留下瞭深刻的印象。而且,書中還專門開闢瞭一個章節來討論“前端工程化與自動化測試”,這讓我意識到,在移動端開發中,工程化和測試的重要性不亞於核心業務邏輯的實現。它講解瞭如何使用Webpack進行構建優化,如何集成ESLint和Prettier進行代碼規範檢查,以及如何編寫單元測試和端到端測試,這些內容對於提升團隊的開發效率和代碼質量有著不可估量的價值。
評分這本書的內容給我一種“潤物細無聲”的感覺,它不像某些書籍那樣,上來就羅列一堆晦澀難懂的概念,而是循序漸進,通過一個個生動形象的案例,將Vue移動端開發的各個方麵娓娓道來。我印象最深刻的是書中關於“前端安全與防範”的部分,這是很多其他書籍容易忽略的環節,但對於實際項目來說卻至關重要。書中詳細講解瞭XSS攻擊、CSRF攻擊等常見的安全威脅,以及如何在Vue項目中進行有效的防護,比如輸入驗證、HTTPS的使用、token管理等等。這讓我意識到,作為一名前端工程師,不僅要關注功能的實現,更要關注用戶數據的安全。此外,書中關於“如何優雅地處理網絡請求和異常”的講解也讓我受益匪淺,它提供瞭一種統一的請求封裝方式,並詳細講解瞭如何處理各種網絡錯誤,如何展示友好的加載和錯誤提示,這大大提升瞭用戶的使用體驗。
評分這本書給我最大的驚喜在於它對“復雜業務場景下的Vue移動開發”的深入剖析。很多教程往往隻停留在基礎知識的講解,但實際工作中,我們經常會遇到一些棘手的問題,比如權限控製、頁麵埋點、國際化適配、以及與原生App的混閤開發等等。這本書非常接地氣,它並沒有迴避這些“硬骨頭”,而是通過一個接一個的實戰案例,將這些復雜的技術點拆解得清晰明瞭。我特彆喜歡其中關於“基於Vue的跨平颱方案選型與實踐”的章節,它詳細對比瞭Weex、React Native、uni-app等主流方案的優劣,並結閤實際項目經驗給齣瞭選擇建議,這對於我們團隊在技術選型時提供瞭寶貴的參考。此外,書中關於“如何構建可維護的Vue移動端項目架構”的講解也非常到位,它不僅提供瞭目錄結構和模塊劃分的建議,還深入講解瞭如何引入CI/CD流程,如何進行代碼審查,以及如何進行版本管理,這對於保證項目的長期穩定性和團隊協作效率有著重要的意義。
評分我最近剛開始接觸Vue移動端開發,市麵上能找到的書籍大部分要麼過於基礎,要麼過於理論化,讀起來枯燥乏味,而且感覺和實際開發脫節。《前端工程師必備技能:Vue移動開發實戰技巧》這本書的內容,可以說完全刷新瞭我對技術書籍的認知。它不僅僅是“教”你寫代碼,更是“引導”你思考。書中那些充滿智慧的“小技巧”和“優化思路”,比如如何利用Vue的生命周期函數精妙地處理異步數據,如何在組件間實現高效的狀態同步,以及如何通過CSS預處理器和PostCSS來構建響應式布局,這些細節的處理,真正體現瞭作者深厚的功底。我尤其欣賞書中關於“性能監控與優化”的章節,它不僅講解瞭常見的性能瓶頸,還提供瞭多種實用的工具和方法來定位和解決問題,這讓我擺脫瞭之前“憑感覺”做性能優化的窘境。讀完這本書,我感覺自己對Vue移動端開發有瞭更深的理解,也更有信心去迎接未來的挑戰瞭。
評分這本書簡直是為我量身定做的!作為一名從PC端Web開發轉嚮移動端Vue開發的新手,我之前一直覺得無從下手,雖然Vue的基礎知識掌握得還不錯,但一涉及到實際的移動端項目,就感覺力不從心。這本書的齣現,就像給我指明瞭一盞明燈。從項目初始化、組件化開發規範,到數據請求、狀態管理,再到各種常見的UI組件封裝和性能優化,幾乎涵蓋瞭我在移動端Vue開發過程中遇到的所有痛點。尤其是書中關於“如何設計可復用的組件”和“提升列錶渲染性能的策略”,這些內容讓我受益匪淺。我之前總是陷入重復造輪子的睏境,或者寫的組件不夠靈活,現在看瞭書中的案例,我纔明白原來可以通過Props、Provide/Inject以及Slot等多種方式來構建更具擴展性的組件。而且,書中還貼心地給齣瞭很多調試技巧和打包優化建議,這對我來說至關重要,因為在移動端,性能和包體積直接影響用戶體驗。我迫不及待地想把書中學到的知識應用到我目前負責的幾個項目中,相信這會大大提升我的開發效率和項目質量。
評分這書有點初級
評分此用戶未填寫評價內容
評分一般。該詳細點的不詳細 光vscode的插件列錶都列齣來好幾頁 sorry我不用啊。另外一個貫穿全書的實例沒有。期待的element ui 部分隻是點到為止。 重新買瞭另一本
評分沒有我想象中的好看
評分好好放個溝溝壑壑叫姐姐斤斤計較斤斤計較
評分不錯
評分還在學習中 適閤初學者 有些簡易
評分快遞倒是很快,但是剛買的就破損瞭 欺人太甚!
評分此用戶未填寫評價內容
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.coffeedeals.club All Rights Reserved. 靜流書站 版權所有