News for hackers. Stuff that matters.
Re:React is 10 years old by yazaddaruvala on Tuesday May 30, 2023 @05:44PM (#36131343)
To de-throne React, React would have to stop de-throning itself.

I do think the future of DOM based diffing is no longer going to use a Virtual DOM. Svelte has shown the way. It just has to be moved into React (or a React successor).

I also think the future of Components is to use async/await more. Where each await point is assigned a fallback component e.g. <Loading /> or something.

React also needs to figure out Hooks a bit better, and see if there is a missing language feature that can be pushed to simplify that concept.

If something (including React) is able to do those three things, while also keeping/improving the React DX (markup and logic together, uni-directional dataflow, hook like annotations that can interoperate with each other), it'll likely de-throne React.

Re:React is 10 years old by leerob on Tuesday May 30, 2023 @05:53PM (#36131451)
Have you seen React Server Components? You mark a component as `async`, and then you `await` some Promise inside of the component to fetch data. The fallback points are declaratively defined through React Suspense. For example:

<Suspense fallback={<LoadingSkeleton />}>

  <MyComponent />
</Suspense>

Where your Server Component then looks as follows:

async function MyComponent() {

  const data = await db.get('...')

  return ...
}

https://nextjs.org/docs/getting-started/react-essentials

Re:React is 10 years old by yazaddaruvala on Tuesday May 30, 2023 @05:56PM (#36131503)
Yes, aware. Its cool, but the ergonomics feel very much the way I felt about Node.js with callbacks.

There is a different type of delight that comes from the ergonomics on async/await. This is the big jump React Suspense also needs to make. I am not smart enough to suggest anything here tho. I just know the framework (including React) that can give me that async/await delight while using Suspense will dominate!