iT邦幫忙

鐵人檔案

2021 iThome 鐵人賽
回列表
Software Development

From State Machine to XState 系列

介紹狀態機的概念、目的到如何實際在當代框架中開發應用

鐵人鍊成 | 共 31 篇文章 | 44 人訂閱 訂閱系列文 RSS系列文 團隊Web 實驗室
DAY 11

Day11 - 狀態機與現實世界的落差 - 1: Action? Side Effect

既然我們已經理解、實作完基本的狀態機了,我們今天來多看看一些狀態圖,並且思索在現實世界中,我們還缺少甚麼東西,首先我們從簡單的開始,慢慢往下進行。 1.門閥開...

2021-09-26 ‧ 由 Ken Chen 分享
DAY 12

Day12 - 狀態機與現實世界的落差 - 2: State Explosion(狀態大爆炸)

回想一下至今認識過的狀態機範例裡,我們目前所見的,都是針對一個物體、物件的小小部分出發,比如 RPG 的移動模組,假設今天不只有移動,我們還需要攻擊的模組、技能...

2021-09-27 ‧ 由 Ken Chen 分享
DAY 13

Day13 - 解決狀態大爆炸 - 1: Parallel States (平行式狀態)

以昨天的例子而言,我們的 input 有 [Invalid / Valid]、[Disabled / Enabled]、[Changed / Unchanged...

2021-09-28 ‧ 由 Ken Chen 分享
DAY 14

Day14 - 解決狀態大爆炸 - 2: Hierarchical States (階層式狀態)

同樣的例子。假設這次我希望某些狀態是依賴於某些狀態的! 比如說有輸入有效(valid)跟輸入無效(invalid),是依賴於 input 是否改動過(chang...

2021-09-29 ‧ 由 Ken Chen 分享
DAY 15

Day15 - 守護你的狀態轉移 : Guard

我們目前所學到的狀態機已知,我們能透過 transition 限制狀態轉換的路徑 對的 state 碰上對的 event ,才能轉移狀態(transition)...

2021-09-30 ‧ 由 Ken Chen 分享
DAY 16

Day16 - 快速回顧 Finite State Machine, State Chart + 淺嚐 XState

回顧 Finite State Machine 1. 什麼是一個 State ? 一個 state 是指某個 物件 / 實體 / 行為系統,在某個時機點 /...

2021-10-01 ‧ 由 Ken Chen 分享
DAY 17

Day17 - XState 說為什麼可以選擇 XState?ft. 說文解字官網亮點

身為開發者,每次規劃、開發都面臨無數的判斷、種種的選擇,為什麼要學這個、為什麼要導入那個?我們最害怕的冒然導入新東西進一個專案,然後 GG~ 尤其是新東西一出來...

2021-10-02 ‧ 由 Ken Chen 分享
DAY 18

Day18 - Interpreting Machines - 1 :什麼是 Interpret ?

還記得我們在 Day 09、Day 10 有 2 個自製版本的 createMacine [Day 09] 的 createMacine 是 Pure func...

2021-10-03 ‧ 由 Ken Chen 分享
DAY 19

Day19 - Interpreting Machines - 2 :使用 interpret API

1. 寫好 Machine Config 傳入 createMachine API const doorMachine = createMachine({...

2021-10-04 ‧ 由 Ken Chen 分享
DAY 20

Day20 - 在 XState 與 Side Effect 互動吧~ action API

1. Action 與 Side Effect 昨天,我們確認了狀態能被儲存起來,然而我們這個開門,只是狀態轉換成「開了」這個字串而已,我們沒有實際執行任何 S...

2021-10-05 ‧ 由 Ken Chen 分享