Sam and Ryan discuss the core values of the Next.js framework, and how those values motivate several of the framework’s design decisions. They talk about caching, why layouts don’t have access to the URL, and why the router doesn’t expose navigation events, as well as how developers should think about extending Next’s functionality with their own application code.
Topics include:
- 0:00 - Intro
- 2:58 - Why don’t layouts re-render in Next.js?
- 7:10 - Push-based vs. pull-based rendering
- 8:56 - Thinking about re-renders in a pure React app
- 11:07 - Why Server Actions need to call the revalidate* APIs
- 12:26 - Why doesn’t Next.js pass the request to every page and layout?
- 31:40 - Immediate-mode rendering vs. “Do the least amount of work possible”
- 51:54 - Is opting-in to more re-renders framework fighting?
- 53:44 - Helping users by communicating the philosophy
- 56:25 - Why doesn’t Next.js expose global router events?
- 1:00:17 - Why it’s important to understand Next’s design decisions when choosing it for your next project