
technologyDec 11, 201954:16pending
130: David Khourshid - Building Better UI Components with State Machines
About this episode
Topics include:
- What exactly is a finite state machine?
- Why trying to keep track of a component's status using boolean flags is leads to bugs and complex code
- Why it makes so much more sense to keep track of a component's state using some sort of label
- How simple it can actually be to implement UI component logic with a state machine and why you shouldn't think of it as complex or over-engineering
- How you can think of using state machines in UI programming to be like an inversion of the typical approach you may have taken in the past, where actions become scoped to certain states instead of actions needing to inspect the current state
- What events might look like in your state machine and where you're actually sending them from and to
- Advice for naming your events
- What it means to "transition" between states
- How using a state machine makes it easy to provide slightly different behavior for the same action based on the current state
- The benefits of visualizing your state machines
- Using the XState library to build state machines in JavaScript
Sponsors:
- Tuple, try the best pair programming app out there for free for two weeks
- DigitalOcean, get your free $50 credit at do.co/fullstack
Links:
- "No, disabling a button is not app logic.", David's recent article on state machines
- XState Docs
Get every episode summarized
Each time Full Stack Radio publishes, we email you a written briefing from the transcript — the topics, who appeared, and any specific claims, with the ad reads skipped.
Email me new episodesFree for 3 shows. No card needed.
Hosts & guests
No transcript yet
This episode has not been transcribed. Request it and it moves to the front of the queue.
More episodes
More from Full Stack Radio

153: DHH – Omarchy and Designing Your Own OS on Arch Linux
Full Stack Radio
Aug 21, 20251:16:25pending

152: Ben Orenstein - How to Stand Out When Applying for a Job at a Small Company
Full Stack Radio
Jan 28, 202147:43pending

151: DHH – Building HEY with Hotwire
Full Stack Radio
Dec 28, 20201:14:00pending

150: Secret Screencasting Tips & Behind the Scenes of Tailwind CSS 2.0
Full Stack Radio
Oct 21, 202059:12pending