Svelte和Sapper實(shí)戰(zhàn)
定 價(jià):118 元
叢書名:Web開發(fā)與設(shè)計(jì)
- 作者:[美] R. 馬克·沃爾克曼(R. Mark Volkmann)著 顏宇 周軼 王威 譯
- 出版時(shí)間:2022/1/1
- ISBN:9787302595151
- 出 版 社:清華大學(xué)出版社
- 中圖法分類:TP312.8
- 頁碼:408
- 紙張:
- 版次:1
- 開本:
主要內(nèi)容
●創(chuàng)建 Svelte組件
●通過store管理共享數(shù)據(jù)
●配置頁面路由
●調(diào)試、測(cè)試和部署Svelte 應(yīng)用程序
●使用Sapper開發(fā)動(dòng)態(tài)網(wǎng)站和靜態(tài)網(wǎng)站
本書讀者對(duì)象
《Svelte和Sapper實(shí)戰(zhàn)》一書面向希望提升開發(fā)效率的Web開發(fā)人員。也許你一直在思考是不是有一種更簡(jiǎn)單的開發(fā)方式來開發(fā)Web應(yīng)用程序。恭喜你,答案就在《Svelte和Sapper實(shí)戰(zhàn)》。通過大量代碼示例,你將學(xué)會(huì)如何使用Svelte和Sapper開發(fā)Web應(yīng)用程序。
《Svelte和Sapper實(shí)戰(zhàn)》面向的讀者需要具備一些基本的HTML、CSS和JavaScript知識(shí)。
· 關(guān)于HTML,讀者需要熟悉html、head、link、style、script、body、div、span、p、ol、ul、li、input、textarea和select等元素。
· 關(guān)于CSS,讀者需要理解CSS語法規(guī)則,什么是CSS的級(jí)聯(lián),了解基本的CSS選擇器(包括元素名、類名、id、繼承關(guān)系),了解常用的CSS屬性(包括color、font-family、font-size、font-style和font-weight)以及CSS盒模型(content、padding、border和margin)。
· 關(guān)于JavaScript,讀者需要知道變量、字符串、數(shù)組、對(duì)象、函數(shù)、類、promise、解構(gòu)、spread操作符、export和import。
如果你發(fā)現(xiàn)了關(guān)于《Svelte和Sapper實(shí)戰(zhàn)》的任何問題,可以在網(wǎng)絡(luò)上與我們溝通。我希望當(dāng)你讀完《Svelte和Sapper實(shí)戰(zhàn)》時(shí),能夠發(fā)現(xiàn)Svelte和Sapper的一些與眾不同的地方,并在下一個(gè)項(xiàng)目中嘗試使用它們。
《Svelte和Sapper實(shí)戰(zhàn)》的結(jié)構(gòu):路線圖
《Svelte和Sapper實(shí)戰(zhàn)》分為四部分,包括21章。
第Ⅰ部分介紹Svelte和Sapper。
· 第1章主要闡述Svelte和Sapper的一些過人之處,在結(jié)尾部分介紹Svelte Native,并與其他主流的Web框架進(jìn)行對(duì)比。此外,還介紹開發(fā)所需的工具。
· 第2章將帶你使用在線工具(REPL)創(chuàng)建個(gè)Svelte應(yīng)用程序。通過這種在線方式構(gòu)建的應(yīng)用程序可以在線保存,并與他人共享代碼,還可將代碼導(dǎo)出到本地繼續(xù)進(jìn)行開發(fā)。此外,還介紹在本地開發(fā)Svelte應(yīng)用程序的步驟。
第Ⅱ部分將深入研究Svelte,并提供大量代碼示例供參考。
· 第3章介紹如何構(gòu)建Svelte組件,包括其中的邏輯、標(biāo)簽和樣式。隨后介紹如何使用響應(yīng)式語句以及模塊上下文來管理組件狀態(tài)。后,將展示一個(gè)自定義組件的示例。
· 第4章涵蓋Svelte的塊結(jié)構(gòu),包括條件邏輯、迭代、promise異步控制HTML標(biāo)簽等。{#if}實(shí)現(xiàn)了條件邏輯,{#each}實(shí)現(xiàn)了迭代遍歷的功能,{#await}實(shí)現(xiàn)了promise異步功能。
· 第5章將帶你探索組件之間的通信,包括props、雙向綁定、slot、事件和上下文。
· 第6章闡述如何使用store共享組件之間的數(shù)據(jù)。store有四種類型:可讀寫、只讀、派生和自定義。隨后介紹如何使用JavaScript類創(chuàng)建store以及持久化store中的數(shù)據(jù)。
· 第7章展示在Svelte組件中操作DOM的幾種方法,包括插入HTML,使用動(dòng)作獲得DOM元素,在Svelte重新渲染后使用tick函數(shù)手動(dòng)修改DOM。后,將展示一個(gè)對(duì)話框以及實(shí)現(xiàn)拖曳功能的示例。
· 第8章將講解Svelte的生命周期函數(shù),包括onMount、beforeUpdate、afterUpdate和onDestroy。后,展示一個(gè)基于現(xiàn)有Svelte生命周期函數(shù)自定義新的生命周期函數(shù)的示例。
· 第9章演示為Svelte應(yīng)用程序添加頁面路由的三種方法:手動(dòng)路由、哈希路由以及使用page.js進(jìn)行路由。我們將開發(fā)一個(gè)購物應(yīng)用程序來演示這三種路由。此外,還可使用Sapper實(shí)現(xiàn)路由,相關(guān)內(nèi)容將在第16章詳細(xì)介紹。
· 第10章探討在Svelte中對(duì)于動(dòng)畫的有力支持,詳細(xì)介紹svelte/animate、svelte/motion和svelte/transition這三個(gè)包,以及在兩個(gè)列表之間移動(dòng)列表元素的兩種方式:一種方式使用fade過渡效果和flip動(dòng)畫的組合,另一種方式使用crossfade過渡效果。后討論如何創(chuàng)建自定義動(dòng)畫以及如何使用過渡事件。
· 第11章展示如何調(diào)試Svelte應(yīng)用程序。包括@debug標(biāo)簽、使用console方法調(diào)試響應(yīng)式語句以及配套的瀏覽器調(diào)試插件svelte-devtools。
· 第12章演示Svelte應(yīng)用程序的多種測(cè)試方法。Jest和svelte-testing-library可用來執(zhí)行單元測(cè)試。端到端的測(cè)試可使用Cypress。Svelte還為可訪問性提供了一些測(cè)試手段,如果你想進(jìn)行額外的可訪問性測(cè)試,可采用Lighthouse、axe和WAVE。后,可以使用Storybook展示和操作測(cè)試組件。
· 第13章將帶你探索如何部署Svelte應(yīng)用程序,包括手動(dòng)部署一個(gè)HTTP服務(wù)器,以及如何使用Netlify、VercelNow和Docker。
· 第14章主要介紹Svelte的其他一些知識(shí)點(diǎn),包括表單驗(yàn)證、CSS變量、使用特殊元素創(chuàng)建Svelte組件庫,以及利用Svelte組件生成Web Components。
第Ⅲ部分將深入研究Sapper。Sapper是一個(gè)基于Svelte的Web應(yīng)用程序開發(fā)框架。
· 第15章將使用Sapper重構(gòu)第9章中的購物應(yīng)用程序,這將是你的個(gè)Sapper應(yīng)用程序。
· 第16章將全面介紹Sapper。首先介紹Sapper應(yīng)用程序的結(jié)構(gòu),之后是Sapper的一些功能,包括頁面路由、頁面布局、預(yù)加載、預(yù)請(qǐng)求以及代碼分割。
· 第17章將探索Sapper的服務(wù)器路由,通過服務(wù)器路由,我們的項(xiàng)目就不僅是Web應(yīng)用程序的客戶端了,還具備了提供API服務(wù)的能力。你將學(xué)會(huì)創(chuàng)建、查詢、更新、刪除(CRUD)等一系列服務(wù)是如何實(shí)現(xiàn)的。
· 第18章展示如何將Sapper應(yīng)用程序部署成一個(gè)靜態(tài)站點(diǎn)。對(duì)于那些采用HTML作為頁面展示載體的應(yīng)用程序來說,這非常有用。后,將帶你一起實(shí)現(xiàn)一個(gè)類似的應(yīng)用程序,其中包括兩個(gè)頁面,一個(gè)是石頭剪刀布的游戲,另一個(gè)是我家的狗。
· 第19章描述如何使用service worker實(shí)現(xiàn)Sapper的離線功能。將介紹以下內(nèi)容:多種緩存策略;Sapper內(nèi)置service worker的一些細(xì)節(jié),包括install、activate和fetch等service worker事件;如何啟用HTTPS。后,帶你一起體驗(yàn)Sapper的離線功能是如何發(fā)揮作用的。
第Ⅳ部分將不局限于Svelte和Sapper。
· 第20章將帶你探索對(duì)于高級(jí)語法的預(yù)處理技術(shù),包括Sass、TypeScript和Markdown,并提供這些預(yù)處理技術(shù)對(duì)應(yīng)的示例。
· 第21章將介紹Svelte Native以及如何使用Svelte和NativeScript來開發(fā)Android端和iOS端的移動(dòng)應(yīng)用程序。我們將利用REPL創(chuàng)建兩個(gè)在線的Svelte Native應(yīng)用程序,使用REPL的好處是并不需要在計(jì)算機(jī)中安裝任何軟件。同時(shí)將提供一個(gè)示例來詳細(xì)解釋顯示、表單、動(dòng)作、對(duì)話框、布局和導(dǎo)航等組件的實(shí)現(xiàn)細(xì)節(jié),以及如何為Svelte Native組件添加樣式。后,介紹NativeScript UI組件庫,并使用其中的組件RadSideDrawer創(chuàng)建一個(gè)示例應(yīng)用程序。
后一章結(jié)束后我們的學(xué)習(xí)并沒有告一段落!還有七個(gè)附錄在等著你。
· 附錄A整理與Svelte、Sapper和Svelte Native相關(guān)的資料的鏈接。
· 附錄B介紹如何使用Fetch API請(qǐng)求REST服務(wù)。
· 附錄C介紹在第17章中使用過的MongoDB數(shù)據(jù)庫。
· 附錄D介紹如何配置和使用ESLint來檢查應(yīng)用程序中的問題。
· 附錄E介紹如何配置和使用Prettier來格式化Svelte和Sapper應(yīng)用程序中的代碼。
· 附錄F介紹在使用VS Code開發(fā)Svelte和Sapper應(yīng)用程序時(shí)所用到的幾種插件。
· 附錄G介紹如何使用Snowpack構(gòu)建Svelte應(yīng)用程序。Snowpack與傳統(tǒng)的編譯工具(如Webpack、Rollup和Parcel)相比,是一種更高效的構(gòu)建Web應(yīng)用程序的工具。
在《Svelte和Sapper實(shí)戰(zhàn)》中,我們將開發(fā)一個(gè)Travel Packing應(yīng)用程序!禨velte和Sapper實(shí)戰(zhàn)》中的大部分章節(jié)都圍繞這個(gè)應(yīng)用程序展開討論,并以它為基礎(chǔ)添加對(duì)應(yīng)的功能。
對(duì)于Svelte新手來說,應(yīng)該首先按照順序讀完《Svelte和Sapper實(shí)戰(zhàn)》的第1~8章,這八章涵蓋了Svelte的核心理念。之后可以根據(jù)興趣和需要有選擇地進(jìn)行閱讀。當(dāng)然,如果你有使用Svelte的經(jīng)驗(yàn),那么可以根據(jù)興趣從《Svelte和Sapper實(shí)戰(zhàn)》的任何章節(jié)開始閱讀。
關(guān)于代碼
可掃描封底二維碼來下載相關(guān)代碼。
《Svelte和Sapper實(shí)戰(zhàn)》中包含了很多用于演示的源代碼,既有通過編號(hào)列舉出來的,也有與正文混排在一起的。上述兩種源代碼會(huì)被格式化為等寬字體。有一些代碼還會(huì)被特意加粗以強(qiáng)調(diào)其與之前章節(jié)中代碼的區(qū)別,比如當(dāng)為之前的代碼添加一段新功能,新功能的代碼就會(huì)被加粗。
有些情況下,源代碼已經(jīng)被重新格式化過了;為適應(yīng)《Svelte和Sapper實(shí)戰(zhàn)》印刷的排版,額外增加了換行符,并重新設(shè)計(jì)了縮進(jìn)。然而在極少數(shù)情況下,換行符和縮進(jìn)也無法解決排版混亂的問題,為此會(huì)增加續(xù)行標(biāo)記(?)來調(diào)整排版。此外,代碼的注釋會(huì)被從代碼清單中刪除,而是在代碼清單外的其他地方標(biāo)注出來,以強(qiáng)調(diào)注釋的重要性。
其他在線資源
附錄A列出了一系列在線資源。其中的大多數(shù)都與Svelte和Sapper有直接關(guān)系,但也有一些涵蓋了適合于所有Web開發(fā)的內(nèi)容。
關(guān)于彩圖
正文中有時(shí)提到界面顏色,由于《Svelte和Sapper實(shí)戰(zhàn)》是黑白印刷,將無法顯示彩色。請(qǐng)讀者在實(shí)際操作過程中從計(jì)算機(jī)屏幕上查看;另外,也可掃描封底二維碼下載彩圖。
R. Mark Volkmann從1996年開始就提供軟件咨詢和培訓(xùn)服務(wù),目前是位于圣路易斯的Object Computing公司的合作人。作為一名資深的咨詢顧問,Mark為很多公司提供JavaScript、Node.js、Svelte、React、Vue、Angular等方面的幫助,創(chuàng)建并講授了許多課程,包括React、Vue、AngularJS、Node.js、jQuery、JavaScript、HTML5、CSS3、Ruby、Java和XML。他經(jīng)常面向圣路易斯地區(qū)的用戶發(fā)表演講,并出席各種會(huì)議,包括Nordic.js、Jfokus、NDC Oslo、Strange Loop、MidwestJS、No Fluff Just Stuff和XML DevCon。Mark長(zhǎng)期撰寫各類關(guān)于軟件開發(fā)的文章,這些文章收錄在https://objectcomputing.com/resources/publications/mark-volkmann。
在業(yè)余時(shí)間,Mark愛好跑步,已經(jīng)在39個(gè)州參加了49場(chǎng)馬拉松比賽。
第Ⅰ部分 起步
第1章 初識(shí)Svelte 2
1.1 Svelte介紹 3
1.1.1 為什么選擇Svelte 3
1.1.2 重新思考響應(yīng)式設(shè)計(jì) 7
1.1.3 Svelte的缺點(diǎn) 9
1.1.4 Svelte原理 9
1.1.5 Svelte消失了? 11
1.2 Sapper介紹 11
1.2.1 為什么選擇Sapper? 11
1.2.2 Sapper的工作方式 13
1.2.3 Sapper適用的場(chǎng)景 13
1.2.4 Sapper不適用的場(chǎng)景 13
1.3 Svelte Native介紹 13
1.4 Svelte與其他框架對(duì)比 14
1.4.1 Angular 14
1.4.2 React 14
1.4.3 Vue 14
1.5 開發(fā)工具 15
1.6 小結(jié) 15
第2章 個(gè)Svelte應(yīng)用程序 16
2.1 Svelte REPL 16
2.1.1 Svelte REPL的使用 17
2.1.2 個(gè)REPL應(yīng)用程序 18
2.1.3 保存REPL應(yīng)用程序 22
2.1.4 分享REPL應(yīng)用程序 24
2.1.5 REPL URL 24
2.1.6 導(dǎo)出REPL應(yīng)用程序 24
2.1.7 引用npm包 25
2.1.8 REPL限制 25
2.1.9 CodeSandbox 26
2.2 在REPL之外開發(fā) 26
2.2.1 npx degit入門 27
2.2.2 package.json 28
2.2.3 關(guān)鍵代碼 29
2.2.4 你的個(gè)本地Svelte應(yīng)用程序 31
2.3 獎(jiǎng)金應(yīng)用程序 32
2.4 小結(jié) 36
第Ⅱ部分 深入探討Svelte
第3章 創(chuàng)建組件 38
3.1 .svelte文件內(nèi)容 39
3.2 組件標(biāo)記 39
3.3 組件名稱 42
3.4 組件樣式 42
3.5 CSS特異性 43
3.6 作用域樣式和全局樣式 45
3.7 使用CSS預(yù)處理器 47
3.8 組件邏輯 47
3.9 組件狀態(tài) 49
3.10 響應(yīng)式語句 49
3.11 模塊上下文 52
3.12 構(gòu)建自定義組件 53
3.13 構(gòu)建Travel Packing應(yīng)用程序 54
3.14 小結(jié) 57
第4章 塊結(jié)構(gòu) 59
4.1 使用{#if}條件邏輯 59
4.2 使用{#each}迭代 61
4.3 使用{#await}處理promise 62
4.4 構(gòu)建Travel Packing應(yīng)用程序 65
4.4.1 Item組件 66
4.4.2 實(shí)用函數(shù) 67
4.4.3 Category組件 68
4.4.4 Checklist組件 70
4.4.5 App組件 73
4.4.6 運(yùn)行應(yīng)用程序 74
4.5 小結(jié) 75
第5章 組件通信 76
5.1 組件通信方式 77
5.2 props 77
5.2.1 屬性通過export傳入 77
5.2.2 屬性改變時(shí)的響應(yīng) 79
5.2.3 屬性類型 80
5.2.4 指令 81
5.2.5 表單元素中的bind指令 81
5.2.6 bind:this 84
5.2.7 使用bind導(dǎo)出屬性 85
5.3 slot 89
5.4 事件 90
5.4.1 事件派發(fā) 90
5.4.2 事件轉(zhuǎn)發(fā) 92
5.4.3 事件修飾符 92
5.5 context 92
5.6 構(gòu)建Travel Packing應(yīng)用程序 94
5.7 小結(jié) 97
第6章 store 98
6.1 可寫store 98
6.2 可讀store 100
6.3 在合適的地方定義store 100
6.4 使用store 101
6.5 派生store 107
6.6 自定義store 108
6.7 結(jié)合類使用store 109
6.8 持久化store 113
6.9 構(gòu)建Travel Packing應(yīng)用程序 114
6.10 小結(jié) 114
第7章 DOM交互 115
7.1 插入HTML 115
7.2 action 118
7.3 tick函數(shù) 119
7.4 實(shí)現(xiàn)對(duì)話框組件 122
7.5 拖曳 125
7.6 繼續(xù)構(gòu)建Travel Packing應(yīng)用程序 127
7.7 小結(jié) 129
第8章 生命周期函數(shù) 130
8.1 安裝 130
8.2 onMount生命周期函數(shù) 132
8.2.1 移動(dòng)焦點(diǎn) 132
8.2.2 檢索來自API服務(wù)的數(shù)據(jù) 132
8.3 onDestroy生命周期函數(shù) 133
8.4 beforeUpdate生命周期函數(shù) 135
8.5 afterUpdate生命周期函數(shù) 136
8.6 使用輔助函數(shù) 137
8.7 進(jìn)一步構(gòu)建Travel Packing應(yīng)用程序 139
8.8 小結(jié) 139
第9章 客戶端路由 140
9.1 手動(dòng)路由 140
9.2 hash路由 148
9.3 使用page.js庫 150
9.4 結(jié)合page.js使用路徑參數(shù)和查詢參數(shù) 151
9.5 完善Travel Packing應(yīng)用程序 155
9.6 小結(jié) 156
第10章 動(dòng)畫 157
10.1 緩動(dòng)函數(shù) 158
10.2 svelte/animation包 158
10.3 svelte/motion包 160
10.4 svelte/transition包 164
10.5 fade過渡效果和flip動(dòng)畫效果 165
10.6 crossfade過渡效果 167
10.7 draw過渡效果 169
10.8 自定義過渡效果 170
10.9 transition與in和out 172
10.10 過渡事件 172
10.11 為Travel Packing應(yīng)用程序添加動(dòng)畫效果 173
10.12 小結(jié) 175
第11章 調(diào)試 176
11.1 @debug標(biāo)簽 176
11.2 響應(yīng)式語句 179
11.3 Svelte開發(fā)者工具 179
11.4 小結(jié) 182
第12章 測(cè)試 183
12.1 使用Jest進(jìn)行單元測(cè)試 184
12.1.1 為Todo應(yīng)用程序添加單元測(cè)試 186
12.1.2 為Travel Packing應(yīng)用程序增加單元測(cè)試 188
12.2 使用Cypress執(zhí)行端到端測(cè)試 193
12.2.1 對(duì)Todo應(yīng)用程序執(zhí)行端到端測(cè)試 194
12.2.2 對(duì)Travle Packing應(yīng)用程序執(zhí)行端到端測(cè)試 196
12.3 無障礙可訪問性測(cè)試 200
12.3.1 Svelte compiler 201
12.3.2 Lighthouse 201
12.3.3 axe 204
12.3.4 WAVE 206
12.4 使用Storybook展示并調(diào)試組件 208
12.5 小結(jié) 216
第13章 部署 217
13.1 使用HTTP服務(wù)器部署Sevlte應(yīng)用程序 217
13.2 Netlify使用 218
13.2.1 通過Netlify頁面部署應(yīng)用程序 218
13.2.2 通過Netlify命令行部署應(yīng)用程序 219
13.2.3 Netlify收費(fèi)計(jì)劃 221
13.3 Vercel使用 221
13.3.1 通過Vercel頁面部署應(yīng)用程序 221
13.3.2 通過Vercel命令行部署應(yīng)用程序 222
13.3.3 Vercel收費(fèi)計(jì)劃 222
13.4 Docker使用 223
13.5 小結(jié) 223
第14章 Svelte高級(jí)特性 224
14.1 表單校驗(yàn) 225
14.2 使用CSS框架 228
14.3 特殊元素 232
14.4 引用JSON文件 235
14.5 創(chuàng)建組件庫 236
14.6 Web Components 237
14.7 小結(jié) 241
第Ⅲ部分 深入探討Sapper
第15章 你的個(gè)Sapper應(yīng)用程序 244
15.1 創(chuàng)建一個(gè)全新的Sapper應(yīng)用程序 245
15.2 使用Sapper重新開發(fā)購物應(yīng)用程序 247
15.3 小結(jié) 250
第16章 Sapper應(yīng)用程序 251
16.1 Sapper項(xiàng)目的文件結(jié)構(gòu) 252
16.2 頁面路由 254
16.3 頁面布局 256
16.4 錯(cuò)誤處理 258
16.5 在服務(wù)端和客戶端運(yùn)行代碼 258
16.6 Fetch API包裝器 259
16.7 預(yù)加載 259
16.8 預(yù)請(qǐng)求 262
16.9 代碼分割 263
16.10 構(gòu)建Sapper版本的Travel Packing應(yīng)用程序 264
16.11 小結(jié) 267
第17章 Sapper服務(wù)端路由 268
17.1 服務(wù)端路由的源文件 269
17.2 服務(wù)端路由函數(shù) 269
17.3 一個(gè)CRUD的例子 270
17.4 切換至Express 277
17.5 構(gòu)建Travel Packing應(yīng)用程序 278
17.6 小結(jié) 284
第18章 使用Sapper導(dǎo)出靜態(tài)站點(diǎn) 285
18.1 Sapper的細(xì)節(jié) 286
18.2 何時(shí)使用導(dǎo)出功能 286
18.3 應(yīng)用程序示例 287
18.4 小結(jié) 295
第19章 Sapper的離線支持 296
19.1 service worker概述 297
19.2 緩存策略 298
19.3 Sapper service worker配置 300
19.4 service worker事件 301
19.5 在Chrome中管理
service worker 302
19.6 在Sapper服務(wù)器中開啟HTTPS 306
19.7 驗(yàn)證離線功能 307
19.8 構(gòu)建Travel Packing應(yīng)用程序 308
19.9 小結(jié) 312
第Ⅳ部分 Svelte和Sapper的其他相關(guān)知識(shí)
第20章 預(yù)處理器 314
20.1 自定義預(yù)處理器 315
20.2 svelte-preprocess包 317
20.2.1 auto-preprocessing模式 317
20.2.2 外部文件 318
20.2.3 全局樣式 319
20.2.4 使用Sass 320
20.2.5 使用TypeScript 320
20.2.6 VS Code提示 322
20.3 使用Markdown 322
20.4 使用多個(gè)預(yù)處理器 324
20.5 圖像壓縮 325
20.6 小結(jié) 325
第21章 Svelte Native 326
21.1 內(nèi)置組件 327
21.1.1 展示組件 327
21.1.2 表單組件 328
21.1.3 行為組件 328
21.1.4 對(duì)話框組件 329
21.1.5 布局組件 329
21.1.6 導(dǎo)航組件 331
21.2 Svelte Native入門 332
21.3 本地開發(fā)Svelte Native應(yīng)用程序 333
21.4 NativeScript樣式實(shí)現(xiàn) 334
21.5 預(yù)定義NativeScript CSS類 335
21.6 NativeScript 主題 337
21.7 綜合示例 337
21.8 NativeScript UI組件庫 353
21.9 Svelte Native的問題 357
21.10 小結(jié) 358
附錄A 資源 359
附錄B 調(diào)用REST服務(wù) 365
附錄C MongoDB 368
附錄D Svelte的ESLint配置 375
附錄E 在Svelte中使用Prettier 377
附錄F VS Code 379
附錄G Snowpack 383