超級簡短的 Svelte 框架入門教程胶惰,僅需十條推文

Xiaoru "Leo" Li 原作鹉戚,翻譯轉(zhuǎn)載自 New Frontend 垫桂。

總想了解下 Svelte(web 開發(fā)的下一次革命)但是一直沒時間师幕?

01

這份十條推文組成的旋風教程正是為你準備的!

(劇透警告:Svelte 是如此直觀易用诬滩,以至于你可能感覺這些你都已經(jīng)知道了霹粥!)

Svelte 的工作機制:

  • 編譯器:并不會分發(fā)一個 Svelte 「庫」給用戶,而是在構(gòu)建階段編譯出優(yōu)化的純 JS 代碼
  • 組件:應用由可組合的 UI 元素組成
  • 響應式:事件/用戶交互觸發(fā)一系列狀態(tài)改變疼鸟,自動更新整個應用的組件
編譯后控、響應

02

用戶界面是組件樹。組件定義了應用應當如何解釋一些抽象的「狀態(tài)」值空镜,以便在瀏覽器中轉(zhuǎn)換為 DOM 元素浩淘,并最終轉(zhuǎn)換為屏幕上的像素捌朴。

組件樹和狀態(tài)變量

03

每個 .svelte 文件包含一個組件,由三部分組成:

  • <stript> 是 JS 編寫的組件邏輯

  • <style> 是 CSS 樣式张抄,作用域和應用范圍僅限于當前組件

  • Svelte 模板砂蔽,以 HTML 基礎,加上一些定制組件和內(nèi)嵌邏輯(類似 JSX)

腳本署惯、樣式察皇、模板

04

除了 HTML 元素外,Svelte 模板中還可以使用自定義組件泽台。在不會引起歧義的情況下什荣,在模板中引入自定義組件時可以省略 .svelte 文件擴展名,但是自定義組件的首字母 必須 大寫怀酷。

花括號中可以使用 JS 表達式稻爬。

Svelte 模板示例

05

「控制」子組件行為的常見做法是將數(shù)據(jù)作為屬性(props)傳入。

使用 export 暴露屬性變量蜕依。注意賦值時使用 let 而不是 const桅锄,因為 const 無法重新賦值。

暴露變量和傳入屬性

06

用戶動作會觸發(fā)事件样眠。我們使用 on: 監(jiān)聽事件并運行函數(shù)以更新狀態(tài)友瘤。用戶界面會隨著狀態(tài)的更新自動更新。

一般來說數(shù)據(jù)從上往下流動檐束,但我們可以使用 bind: 開放雙向數(shù)據(jù)流動以簡化狀態(tài)更新邏輯辫秧。

on 和 bind 用法示例

07

$: 開頭的語句是「響應式語句」。

Svelte 會分析響應式語句依賴的變量被丧。任意依賴變量的值改變時盟戏,會重新執(zhí)行相應的響應式語句。聲明衍生狀態(tài)或觸發(fā)「副作用」時這個特性十分好用甥桂。

響應式語句示例:檢測密碼強度

08

響應式「store」方便在組件之間共享狀態(tài)柿究。store 放在單獨的 JS 文件里,只需用 writable 封裝一個值就可以創(chuàng)建黄选。

在組件中引用(讀寫)時蝇摸,store 名稱帶上 $ 前綴。編譯器真奇妙办陷!

store 的聲明和使用

09

在 Svelte 模板中貌夕,使用 {#if} 可以實現(xiàn)有條件地渲染組件({#if} 有一個可選的 {:else} 分支)。

使用 {#each} 渲染列表中的每個成員懂诗。

別忘了總是使用 {/if}{/each} 收尾蜂嗽。

(下面的例子中其實應該使用 <ol>苗膝,我用 <ul> 是為了演示如何訪問數(shù)組索引)殃恒。

if 和 each 示例

10

Svelte 下進行 API 請求之類的異步操作非常容易植旧。

我們可以直接 {#await} Promise 完成,在結(jié)果就緒前顯示「加載中」离唐。

注意 {#await} 關鍵字只適用于模板部分病附,無法在 <script> 中使用。

{#await}亥鬓、{:then}完沪、{:catch}

Svelte 自帶精美的動畫變換效果。試著給你的組件加上 transition:fly 屬性嵌戈!還可以嘗試下其他類型的動畫效果覆积,比如 fade(淡入淡出) 和 slide(滑動)。你還能使用 in:熟呛、out: 分別為出現(xiàn)和消失指定不同的效果宽档。

傳入?yún)?shù)可以進一步微調(diào)動畫效果。

動畫效果演示

好了庵朝,這就是上手 Svelte 前需要了解的所有內(nèi)容吗冤。??

開發(fā)愉快!

(這篇旋風教程的形式借鑒了 Chris Achard 寫的 React 超短入門教程)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末九府,一起剝皮案震驚了整個濱河市椎瘟,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌侄旬,老刑警劉巖肺蔚,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異儡羔,居然都是意外死亡婆排,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門笔链,熙熙樓的掌柜王于貴愁眉苦臉地迎上來段只,“玉大人,你說我怎么就攤上這事鉴扫≡拚恚” “怎么了?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵坪创,是天一觀的道長炕婶。 經(jīng)常有香客問我,道長莱预,這世上最難降的妖魔是什么柠掂? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮依沮,結(jié)果婚禮上涯贞,老公的妹妹穿的比我還像新娘枪狂。我一直安慰自己,他們只是感情好宋渔,可當我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布州疾。 她就那樣靜靜地躺著,像睡著了一般皇拣。 火紅的嫁衣襯著肌膚如雪严蓖。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天氧急,我揣著相機與錄音颗胡,去河邊找鬼。 笑死吩坝,一個胖子當著我的面吹牛杭措,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播钾恢,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼手素,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了瘩蚪?” 一聲冷哼從身側(cè)響起泉懦,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎疹瘦,沒想到半個月后崩哩,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡言沐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年邓嘹,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片险胰。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡汹押,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出起便,到底是詐尸還是另有隱情棚贾,我是刑警寧澤,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布榆综,位于F島的核電站妙痹,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏鼻疮。R本人自食惡果不足惜怯伊,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望判沟。 院中可真熱鬧耿芹,春花似錦崭篡、人聲如沸县习。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至寇甸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間疗涉,已是汗流浹背拿霉。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留咱扣,地道東北人绽淘。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像闹伪,于是被迫代替她去往敵國和親沪铭。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容