Scott and Wes serve up state management in JavaScript, breaking down key concepts like reactive state, state updaters, and global vs local state. They also explore various approaches and libraries, mutation-based state, and tools like Zustand and xState, to help you manage state like a pro.
<a id= "Show_Notes_2"></a>Show Notes
--- [00:00] (#t=00:00) Welcome to Syntax!
--- [01:22] (#t=01:22) Brought to you by [Sentry.io] (https://opensourcepledge.com/) .
--- [03:10] (#t=03:10) What is state?
--- [03:29] (#t=03:29) Common state jargon.
------ [03:48] (#t=03:48) Reactive State.
------ [04:14] (#t=04:14) Store.
------ [04:46] (#t=04:46) Immutable vs Mutable State.
------ [05:53] (#t=05:53) State updaters.
------ [06:15] (#t=06:15) Signals.
--------- [Solid.js Signal Docs] (https://docs.solidjs.com/concepts/signals) .
------ [06:49] (#t=06:49) Observables.
------ [07:07] (#t=07:07) UI is a function of state.
------ [08:39] (#t=08:39) State Machine.
------ [10:58] (#t=10:58) Binding state.
------ [11:36] (#t=11:36) Global vs local.
------ [11:49] (#t=11:49) Computed State, derived state, selector state.
--- [12:41] (#t=12:41) Approaches to state management.
------ [12:52] (#t=12:52) Reducer based.
------ [16:39] (#t=16:39) Mutation based state.
------ [21:17] (#t=21:17) Adam based state.
--- [25:15] (#t=25:15) Ways to hold state.
------ [25:17] (#t=25:17) Holding state in an object.
------ [27:38] (#t=27:38) Holding state in the URL.
--------- [Syntax Shows] (https://syntax.fm/shows?perPage=20) .
------ [29:34] (#t=29:34) Holding state in IndexedDB, local storage, and cookies.
------ [32:16] (#t=32:16) Holding state with FormData.
------ [33:56] (#t=33:56) Holding state with Signals.
--------- [Signals Proposal] (https://github.com/tc39/proposal-signals) .
------ [37:27] (#t=37:27) Holding state with the server database.
--- [38:55] (#t=38:55) Global State vs Component State.
------ [Habit Path] (https://habitpath.io/landing) .
--- [40:39] (#t=40:39) Sharing state.
------ [42:58] (#t=42:58) State libraries.
------ [45:26] (#t=45:26) <a href= "https://zustand-demo.pmnd.rs/">Zustand</a>.
------ [50:24] (#t=50:24) <a href= "https://jotai.org/">Jotai</a>.
------ [51:50] (#t=51:50) <a href= "https://xstate.js.org/">xState</a>.
------ [54:56] (#t=54:56) <a href= "https://easy-peasy.vercel.app/">Easy Peasy</a>.
------ [55:24] (#t=55:24) <a href= "https://pinia.vuejs.org/">Pinia</a>.
------ [56:01] (#t=56:01) <a href= "https://tanstack.com/query/latest">TanStack Query</a>.
--- [57:02] (#t=57:02) Sick Picks + Shameless Plugs.
<a id="Sick_Picks_45"></a>Sick Picks
--- Scott: [Cremo Mens Body Wash] (https://amzn.to/3BTspDv) , [Bentgo Adult] (https://amzn.to/4fdYe8r) .
--- Wes: [Adult Bento Box] (https://amzn.to/4fbRTdz) .
<a id="Shameless_Plugs_50"></a>Shameless Plugs
--- Wes: [Syntax on YouTube] (www.youtube.com@syntaxfm) .
<a id="Hit_us_up_on_Socials_55"></a>Hit us up on Socials!
Syntax: [X] (https://twitter.com/syntaxfm) <a href= "https://www.instagram.com/syntax_fm/">Instagram</a> <a href= "https://www.tiktok.com/@syntaxfm">Tiktok</a> <a href= "https://www.linkedin.com/company/96077407/admin/feed/posts/">LinkedIn</a> [Threads] (https://www.threads.net/@syntax_fm)
Wes: [X] (https://twitter.com/wesbos) <a href= "https://www.instagram.com/wesbos/">Instagram</a> <a href= "https://www.tiktok.com/@wesbos">Tiktok</a> <a href= "https://www.linkedin.com/in/wesbos/">LinkedIn</a> <a href= "https://www.threads.net/@wesbos">Threads</a>
Scott: [X] (https://twitter.com/stolinski) <a href= "https://www.instagram.com/stolinski/">Instagram</a> <a href= "https://www.tiktok.com/@stolinski">Tiktok</a> <a href= "https://www.linkedin.com/in/stolinski/">LinkedIn</a> <a href= "https://www.threads.net/@stolinski">Threads</a>
Randy: [X] (https://twitter.com/randyrektor) <a href= "https://www.instagram.com/randyrektor/">Instagram</a> <a href= "https://www.youtube.com/@randyrektor">YouTube</a> <a href= "https://www.threads.net/@randyrektor">Threads</a>
... Read more