Logo
    Search

    Podcast Summary

    • React Server Components: Rendering Components on the Server SideReact Server Components enable server-side rendering for improved performance and reduced network traffic, but require new design patterns and come with potential gotchas. Sentry is a useful tool for error tracking and performance monitoring.

      React Server Components represent a significant shift in the React development landscape. Announced in late 2020, they have been gaining traction and are now being used in production environments. React developers are increasingly asking about their benefits, usage, and potential gotchas. Essentially, React Server Components allow for rendering components on the server side instead of the client side, which can lead to improved performance and reduced network traffic. However, they come with their own design patterns and learning curve. Additionally, error tracking and performance monitoring tools like Sentry become crucial when working with React applications. Sentry offers features such as error exception tracking, performance monitoring, and session replay to help developers diagnose and resolve issues. Apart from React Server Components, the hosts shared some light-hearted moments during the podcast, including Scott's excitement about the University of Michigan's football team finally winning the national championship after many years of disappointment.

    • React's Opinionated Approach to Server-Side RenderingReact's new server components allow for asynchronous rendering and direct database queries, eliminating the need for custom hooks, API endpoints, and serverless functions in many cases, resulting in simpler and more efficient code.

      React is becoming more opinionated about server-side rendering, making it possible to write components that work across any React application. This adds complexity, as developers now need to consider a server layer beyond just hitting APIs. However, this also means less code for data fetching and rendering, as more of this logic can be handled in server components. Server components are React components rendered on the server, allowing for asynchronous rendering and direct database queries, eliminating the need for custom hooks, API endpoints, and serverless functions in many cases. This results in simpler and more efficient code, making server components a significant improvement for React developers.

    • Server components vs client components: A shifting perspectiveServer components handle database queries and server-side APIs, reducing client-side dependencies. Benefits include smaller packages and the ability to use server-side APIs. Separate logic into different files and mark functions as server-side only.

      The speaker's perspective on server components versus client components has shifted, as they came from a background where they didn't encounter loading states or the need to worry about data directly from the database. Now, they find it appealing to have server components directly handle database queries and server-side APIs, reducing the need for large dependencies on the client-side. They also appreciate the ability to separate logic into different files and mark functions as server-side only. Initially, there was some resistance to the idea of running code on the server, but the benefits of doing so, such as smaller client-side packages and the ability to use server-side APIs, have become clearer. The speaker acknowledges that there may be more to learn and that some initial concerns may be addressed in the future. In the context of React, server components are now an opt-in feature for handling custom state, effects, and event handlers, while initial server rendering still occurs. The speaker was initially surprised that state couldn't be put in a server component, but they now understand the benefits of separating concerns and using client components for specific use cases.

    • Understanding Server Components in ReactServer Components in React allow developers to server-render static content and client-side render dynamic elements, improving efficiency and user experience. Careful consideration is needed when implementing these components in existing applications.

      Components in React applications are server-rendered by default, but developers can opt-in to client-side rendering for parts of the application requiring interactivity and custom state. This approach allows developers to leverage the benefits of server rendering for static content while adding JavaScript for dynamic elements. The use of libraries like Alpine JS for "sprinkling in" JavaScript as needed can make this process more declarative and efficient. Server components work by rendering the component on the server and sending the React code and data over the wire to the client. This allows the client-side React to insert the received HTML into the appropriate part of the website. By understanding this process, developers can create more efficient and effective web applications. However, when moving an existing application to this model, there may be challenges. Developers must carefully consider how to integrate the new server components with the existing application and ensure a seamless user experience. This can involve refactoring code, adjusting dependencies, and making other necessary changes. Additionally, it's important to remember that not all parts of an application require interactivity or custom state. By focusing on where these features are truly necessary, developers can make the most of the benefits offered by both server and client-side rendering.

    • Porting a React app to server components is complex and time-consumingTo make server components work with client components, wrap the client component around the server component or pass it in via props.

      Moving a React application to server components can be a complex and time-consuming process, especially for medium to large-sized applications. The speaker, who had experience with two smaller applications, took 3.5 hours to port the navigation, footer, and layout, and estimated another 15-20 hours to complete the rest of the website. The challenge lies in the fact that server components can have client components, but client components cannot have server components. This creates a tree-like structure where you cannot go from leaf (client component) to branch (server component), but you can go from trunk (server component) to leaf. To handle this issue, when dealing with components that require interactivity, such as a cart with drag-and-drop functionality, the total value calculation should be done in a server component and passed as data to the client component. However, you cannot directly put a server component inside a client component file. Instead, you should wrap the client component around the server component or pass it in via props. This workaround can help overcome the limitation and make the implementation of server components more feasible.

    • Working with Server Components in React: A New ApproachUse props to import and use server components, mark components as client components, introduce server actions and form actions for streamlined form handling.

      Working with server components in React, such as Svelte, requires a new approach to importing and using components. Instead of directly importing and using components, you now need to pass them in via props. This can be frustrating for developers used to the traditional import and use method. Additionally, to fix certain errors, you must mark components as client components by using "use client" at the top of the file. These components cannot be in the same file as server components, which means having multiple files for rendering a single component. While this may seem like a step back from the simplicity of traditional web development, it's part of the new design patterns necessary for server components to work effectively. Another significant takeaway is the introduction of server actions and form actions in React. These features make working with forms more streamlined, as React is now becoming opinionated about how to submit forms to the server. With form actions, you pass a function to the action prop on a form, and it runs when the form is submitted. This uses the standard form data API, which is a JavaScript standard for describing and parsing form data into a JavaScript object and sending it to the server. These new features save developers time and effort by eliminating the need for third-party libraries or custom state hooks for form handling.

    • React Form Handling: Flexible and Declarative ApproachReact allows developers to handle forms flexibly and declaratively, with the option to run form actions on the client or server side, and directly on buttons without forms.

      In React, when handling form submissions, the action property is a reference to a function that runs when the form is submitted, giving you access to the entire form data object. This happens on the client side by default, but you can opt to run it on the server side using the "useServer" function. Form actions in React are client-side by default, but you can make them server-side when needed. This can lead to some confusion, but it allows for a seamless transition of passing variables from the client side to the server side without the need for APIs or JSON stringify. Buttons can also have actions associated with them directly, without the need to wrap them in a form. This declarative approach can be beneficial for larger applications with numerous buttons, but it's worth noting that in Svelte, you can also call server actions directly using JavaScript without wrapping them in a form. Overall, React's approach to form handling offers flexibility and simplicity, allowing developers to choose the best approach for their specific use case.

    • Improving form handling and data fetching with React hooksReact hooks like form status, form state, optimistic UI, and suspense enhance form handling and data fetching, providing optimistic updates, immediate feedback, and faster loading times for a seamless user experience.

      React provides several hooks to improve form handling and data fetching, enhancing the user experience by providing optimistic UI and suspense components. These features allow for immediate feedback and faster loading times, making the application feel more responsive. Form handling in React now includes hooks like form status and form state, which provide reactive variables for displaying loading indicators and handling error or success messages from the server. Additionally, the use optimistic hook enables optimistic updates, allowing for immediate appending of items to a list without waiting for a response from the server. This results in a more seamless and faster user experience. Data fetching is also improved with React suspense, which allows for wrapping components that take a long time to render or fetch data. This results in a loader component being displayed while the server continues working on rendering the component, preventing the entire page from being held up. The server then streams the rendered component back to the client when it's ready, ensuring a smooth and efficient user experience. Examples of these optimizations can be found in common applications like Facebook, where comments are saved and processed in the background, giving users the perception of instant feedback without having to wait for the server to respond. Overall, these features make React an even more powerful tool for building dynamic and responsive web applications.

    • Simplifying asynchronous data handling with React's Suspense componentReact's Suspense component streamlines data fetching and rendering, eliminating the need for custom requests and offering a more seamless client-server model.

      React's new Suspense component simplifies handling asynchronous data fetching and rendering between server and client, allowing for seamless component wrapping and easier implementation of server-side rendering. This feature, which eliminates the need for custom fetch requests, is a significant improvement for developers who value the ease of running projects with a client-server model and reactivity. However, some may find the adoption of this feature a large rewrite, especially if they have recently transitioned to other frameworks like Svelte or Astro, or if they are skeptical of the benefits. Despite this, Suspense is expected to be supported by other frameworks like Remix, and its integration with tanstack's component data loading further solidifies its place in the React ecosystem. Ultimately, Suspense offers a more effortless approach to handling data loading and rendering, making it an attractive feature for developers looking to streamline their workflow.

    • Limiting and Inefficient State Management in Next.jsAdhere to server-rendering by default, opt for client-side components as needed, and consider new frameworks like Wacku for improved state management in Next.js.

      The current architecture for managing state and components in Next.js can be limiting and inefficient. The speaker mentioned several downsides, including the need to split components into multiple files, difficulties in accessing the current page URL server-side, and issues with third-party components being server-rendered by default. To improve the situation, the speaker suggested adhering to design principles where everything should be server-rendered by default, and opting in to client-side components as needed. They also recommended using smaller client-side components and considering new frameworks like Wacku, which is implemented using Rec Server Components by default. Overall, the conversation highlighted the importance of carefully considering architecture choices and the potential benefits of new tools and frameworks.

    • Exploring Server Components in React with Mux.comMux.com's server components offer insights into state management and performance, with real-world applications demonstrated through URL preloading.

      Server components in React, like those offered by Mux.com, provide a deeper insight into state management and website performance. The speaker, who had researched the topic extensively, explained how hovering over URLs on mux.com reveals preloading parts, demonstrating the real-world application of this technology. He also shared his enthusiasm for the audience gaining a better understanding of this concept. During the "sick picks and shameless plugs" segment, the speaker shared personal experiences and recommendations. He first discussed his experience of ripping data from old CDs and DVDs using a compact and affordable Asus Zen Drive. He then introduced the Leatherman ARC multi-tool, which he carries daily for various tasks, preferring it over a traditional pocket knife due to its versatility and compact size.

    • Multi-tools like Leatherman Arc can solve small problemsInvest in a high-quality multi-tool like Leatherman Arc for unexpected situations, it's compact, versatile, and a game-changer

      Multi-tools, specifically the Leatherman Arc, can be used in various situations to solve small problems and make one feel like a hero. The Leatherman Arc is a high-quality multi-tool with a nice blade, magnets, and clips. It's an investment piece that can be carried around for a long time. The speaker was so impressed with it that he couldn't stop talking about it, just like he did with the Peak Design backpack years ago. The multi-tool can be a game-changer in everyday life, especially during unexpected situations. It's compact, versatile, and convenient to use. The speaker highly recommends it and even encourages listeners to check out his YouTube channel, Syntax on YouTube, for full video episodes of the podcast. The multi-tool is an essential gadget that can make a difference in one's life, and it's worth the investment.

    Recent Episodes from Syntax - Tasty Web Development Treats

    790: State of JS 2023 Reactions

    790: State of JS 2023 Reactions

    Scott and Wes dive into the 2023 State of JavaScript survey, breaking down the latest trends and pain points in front-end frameworks, build tools, and JavaScript runtimes. Tune in for their hot takes and insights on what’s shaping the JavaScript landscape this year!

    Show Notes

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    789: Do More With AI - LLMs With Big Token Counts

    789: Do More With AI - LLMs With Big Token Counts

    Join Scott and CJ as they dive into the fascinating world of AI, exploring topics from LLM token sizes and context windows to understanding input length. They discuss practical use cases and share insights on how web developers can leverage larger token counts to maximize the potential of AI and LLMs.

    Show Notes

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    CJ: X Instagram YouTube TwitchTV

    Randy: X Instagram YouTube Threads

    788: Supabase: Open Source Firebase for Fullstack JS Apps

    788: Supabase: Open Source Firebase for Fullstack JS Apps

    Scott and CJ chat with Paul Copplestone, CEO and co-founder of Supabase, about the journey of building an open source alternative to Firebase. Learn about the tech stack, the story behind their excellent documentation, and how Supabase balances business goals with open-source values.

    Show Notes

    • 00:00 Welcome to Syntax!
    • 00:30 Who is Paul Copplestone?
    • 01:17 Why ‘Supa’ and not ‘Super’?
    • 02:26 How did Supabase start?
    • 08:42 Simplicity in design.
    • 10:32 How do you take Supabase one step beyond the competition?
    • 12:35 How do you decide which libraries are officially supported vs community maintained?
      • 15:17 You don’t need a client library!
    • 16:48 Edge functions for server-side functionality.
    • 18:51 The genesis of pgvector.
    • 20:59 The product strategy.
    • 22:25 What’s the story behind Supabase’s awesome docs?
    • 25:26 The tech behind Supabase.
    • 35:46 How do you balance business goals with open source?
    • 42:01 What’s next for Supabase?
    • 44:15 Supabase’s GA + new features.
    • 48:24 Who runs the X account?
    • 50:39 Sick Picks + Shameless Plugs.

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    CJ: X Instagram YouTube TwitchTV

    Randy: X Instagram YouTube Threads

    787: You Should Try Vue.js

    787: You Should Try Vue.js

    Scott and CJ dive deep into the world of Vue.js, exploring what makes this frontend framework unique and why it stands out from React and Svelte. CJ gives a comprehensive tour, covering everything from getting started to advanced features like state management and Vue’s built-in styles.

    Show Notes

    Vue.js: The Documentary.

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    786: What Open Source license should you use?

    786: What Open Source license should you use?

    Scott and CJ dive into the world of open source, breaking down its meaning, benefits, and the various types of licenses you’ll encounter. From permissive licenses like MIT and Apache 2.0 to copy-left licenses such as GNU GPLv3, they’ll help you choose and apply the right license for your project.

    Show Notes

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    785: What’s Next for NextJS with Tim Neutkens

    785: What’s Next for NextJS with Tim Neutkens

    Scott and Wes dive into the world of Next.js with special guest Tim Neutkens from Vercel. They explore the latest updates, including the React Compiler and React Server Components, discussing their impact on developer workflows and the future of Next.js development.

    Show Notes

    • 00:00 Welcome to Syntax!
    • 00:30 What does the React Compiler do?
    • 05:04 Will React Compiler help with managing Context?
    • 06:39 What happens if you’re not using a React Compiler?
    • 09:30 Will this work on any NextJS version?
    • 12:18 What are React Server Components?
    • 16:28 Shipping all the data inside an encapsulated component.
    • 20:17 Clearing up the frustrations around retrofitting server components.
    • 23:13 Handing migration.
    • 28:30 Is this just a fetch request with props?
    • 36:41 How closely are the NextJS and React teams working?
    • 41:53 Will we ever get Async Client Components?
    • 43:52 Async Local Storage API.
    • 45:31 Turbopack.
    • 57:51 Sick Picks & Shameless Plugs.

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    784: Logging × Blogging × Testing × Freelancing

    784: Logging × Blogging × Testing × Freelancing

    In this Potluck episode, Scott and Wes tackle listener questions on modern blogging, website environmental impact, and using LangChain with LLMs. They also cover CSS hyphens, unit vs. integration testing, and balancing web development with new parenthood.

    Show Notes

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    783: How We Built a Netflix Style “Save for Offline” Feature Into Syntax

    783: How We Built a Netflix Style “Save for Offline” Feature Into Syntax

    Scott and Wes dive into the world of browser caching for audio files, exploring the File System API and the Cache API. They discuss size restrictions across different browsers, how tools like Riverside.fm leverage IndexedDB, and walk through code examples for creating, retrieving, and managing cached audio data.

    Show Notes

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott:X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    782: The Developer’s Guide To Fonts with Stephen Nixon

    782: The Developer’s Guide To Fonts with Stephen Nixon

    Scott and CJ are joined by Stephen Nixon of ArrowType to delve into the world of fonts and type for developers. They explore the intricacies of font creation, the utility of variable fonts, and offer tips for making visually appealing typography on the web.

    Show Notes

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott:X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    781: Potluck - The Value of TypeScript × Vue vs Svelte × Leetcode

    781: Potluck - The Value of TypeScript × Vue vs Svelte × Leetcode

    In this potluck episode of Syntax, Scott and CJ serve up a variety of community questions, from the nuances of beginner vs. advanced TypeScript to the pros and cons of SvelteKit. They also discuss falling out of love with React, shipping private packages via NPM, and the eternal struggle of always starting but never finishing projects.

    Show Notes

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott:X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    Related Episodes

    Potluck - Protestware × NoSQL × Next.js × ESM × Jest

    Potluck - Protestware × NoSQL × Next.js × ESM × Jest

    In this potluck episode of Syntax, Wes and Scott answer your questions about protestware, NoSQL, Next.js, the Syntax.fm website, ESM, Jest, and more!

    Prismic - Sponsor

    Prismic is a Headless CMS that makes it easy to build website pages as a set of components. Break pages into sections of components using React, Vue, or whatever you like. Make corresponding Slices in Prismic. Start building pages dynamically in minutes. Get started at prismic.io/syntax.

    LogRocket - Sponsor

    LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It’s an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.

    Auth0 - Sponsor

    Auth0 is the easiest way for developers to add authentication and secure their applications. They provides features like user management, multi-factor authentication, and you can even enable users to login with device biometrics with something like their fingerprint. Not to mention, Auth0 has SDKs for your favorite frameworks like React, Next.js, and Node/Express. Make sure to sign up for a free account and give Auth0 a try with the link below. https://a0.to/syntax

    Show Notes

    • 00:10 Welcome
    • 01:30 What are the good reasons to use nextjs apart from personal preference?
    • 05:15 How did you decide to build Syntax.fm?
    • Uses.tech
    • 09:09 Why does my M1 Mac feel slower than my Intel Mac?
    • 14:44 Do you alphabetize your larger javascript objects by key name?
    • 17:14 Sponsor: Prismic
    • 19:06 Why did you choose noSQL database over SQL databse?
    • 25:13 What does it mean to support ESM?
    • 30:23 Sponsor: LogRocket
    • 31:35 Are open source maintainers doing harm by inserting protestware into packages?
    • Protestware found lurking in popular npm package
    • 40:30 Should I write the game logic on the backend or on the frontend?
    • 46:30 Sponsor: Auth0
    • 48:20 Sick Picks

    ××× SIIIIICK ××× PIIIICKS ×××

    Shameless Plugs

    Tweet us your tasty treats

    Hasty Treat - Next.js 12

    Hasty Treat - Next.js 12

    In this Hasty Treat, Scott and Wes talk about Next.js 12 and all of its hot new goodness and updates!

    Sanity - Sponsor

    Sanity.io is a real-time headless CMS with a fully customizable Content Studio built in React. Get a Sanity powered site up and running in minutes at sanity.io/create. Get an awesome supercharged free developer plan on sanity.io/syntax.

    LogRocket - Sponsor

    LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It’s an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.

    Show Notes

    04:00 - Rust Compiler: ~3x faster Fast Refresh and ~5x faster builds

    06:25 - Middleware (beta): Enabling full flexibility in Next.js with code over configuration

    08:16 - React 18 Support: Native Next.js APIs are now supported, as well as suspense

    09:56 -  AVIF Support: Opt-in for 20% smaller images

    11:58 - Bot-aware ISR Fallback: Optimized SEO for web crawlers

    13:10 - Native ES Modules Support: Aligning with the standardized module system

    14:39 - URL Imports (alpha): Import packages from any URL, no installs required

    Links

    Tweet us your tasty treats!

    Supper Club × Lee Robinson on React Suspense, Server Components

    Supper Club × Lee Robinson on React Suspense, Server Components

    In this supper club episode of Syntax, Wes and Scott talk with Lee Robinson from Vercel about React Suspense, server components, the edge, and more!

    Lightstep Incident Response - Sponsor

    Streamline on-call, collaboration, incident management, and automation with a free 30-day trial of Lightstep Incident Response, built on ServiceNow. Usage-based pricing on active services promotes collaboration across your entire team to build a culture of service ownership. Listeners of Syntax will also receive a free Lightstep Incident Response T-shirt after firing an alert or incident.

    Pay for the services you use, not the number of people on your team with Lightstep Incident Response, built on ServiceNow. Streamline on-call, collaboration, incident management, and automation with a free 30-day trial. Fire an alert or incident today and receive a free Lightstep Incident Response t-shirt.

    Gatsby - Sponsor

    Today’s episode was sponsored by Gatsby, the fastest frontend for the headless web. Gatsby is the framework of choice for content-rich sites backed by a headless CMS as its GraphQL data layer makes it straightforward to source website content from anywhere. Gatsby’s opinionated, React-based framework makes the hardest parts of building a performant website simpler. Visit gatsby.dev/syntax to get your first Gatsby site up in minutes and experience the speed. ⚡️

    Show Notes

    ××× SIIIIICK ××× PIIIICKS ×××

    Shameless Plugs

    Tweet us your tasty treats

    Hasty Treat - Why should I use React Hooks?

    Hasty Treat - Why should I use React Hooks?

    In this Hasty Treat, Scott and Wes talk about React Hooks and why you might want to use them instead of class components.

    Sentry - Sponsor

    If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”.

    Show Notes

    03:54 - Decouple the UI from the logic

    • This wasn’t impossible with class-based components, but we started using HOC to do this.
    • With hooks, it makes you decouple what it does and how it looks.
    • Makes things like GraphQL code gen possible
    • Multiple pieces of state or functionality
    • Share commonly used functionality among projects and components

    10:31 - Reduction in code

    • Lifecycle methods were often redundant. useEffect offers a way to prevent the duplication that can happen with component did update and did mount. This gives you a way to say, “Hey, run this code when these things change.”

    13:30 - useEffect’s dependencies

    • These give you access to targeted control over side effects rather than just something changed.

    14:15 - Easier to grok

    • What happens? When? Where? It’s mostly in the hook.

    16:09 - Simplicity in usage

    • Thing, updateThing is more targeted than set state
    • Ref makes way more sense with useRef
      • String refs weren’t great, the function ref thing was obnoxious

    21:07 - Gripes about Hooks

    • Naming is kind of odd
      • Vue did a better job with the names

    Links

    Tweet us your tasty treats!

    226: Sarah's Acting Job, Mythbusting, & Mommy & Me Fashion

    226: Sarah's Acting Job, Mythbusting, & Mommy & Me Fashion
    Sarah busts out a food fun fact that blows our mind. We learn about a company that will rent a family to you if you've lost a loved one or are estranged from your family. Sarah talks about how an airline keeps a dead body closet in case somebody dies mid-flight. Susie shares the history of Mommy & Me fashion. We debate the Yanny/Laurel phenomenon. Plus, we interview Mythbusters star, Kari Byron about her career, being a woman in a male-dominated field, & being pregnant on TV. See Privacy Policy at https://art19.com/privacy and California Privacy Notice at https://art19.com/privacy#do-not-sell-my-info.