React
FrontendReact today is the most widely used frontend library within our company, employed in various forms. Whether it's integrated into frameworks like NextJS and Remix or utilized for client-side-only applications, React plays a significant role in many of our ongoing projects. Over time, a community of experts has emerged within the company.
We firmly believe that React 18, with its range of new features, will further enhance its popularity within our company and the broader community.
Suspense
While not an entirely new feature, Suspense was initially introduced in a basic version back in 2018. However, it had certain limitations. Its first official use case was code splitting with React.lazy
, but this feature was only available on the client side, not during server rendering. The primary goal has always been to enhance the loading experience both on the client and server. With React 18, Suspense now enables Streaming server rendering, a new feature that allows React to send the HTML of the loading fallback first and then, after loading completes, send the actual HTML content to the client. The React team continues to work on improving Suspense, particularly to enable data fetching libraries to use it. They are collaborating with authors of some of the most prominent libraries like TanStack Query, SWR, and Apollo.
Server Components
Server Components represent a new paradigm in React application architecture with the goal of minimizing the amount of JavaScript sent to the client. This approach introduces a new type of component that operates exclusively on the server. It shows great promise, which is why we have given React Server Components a dedicated entry on our Tech Radar.
Concurrency
This is a fundamental update to React's rendering model, primarily occurring under the hood. It introduces the ability to create multiple versions of a user interface concurrently. With concurrent React, rendering can be interrupted, abandoned, and resumed, allowing the application to respond to user interactions immediately, even if it's currently in the middle of rendering.
The React team is collaborating closely with some of the major players in the React ecosystem to stabilize and enhance the library. They are also experimenting with new features, ensuring that React remains as exciting as ever.
The past months have shown that React is still a great fit for us for frontend-heavy applications. With its rewritten core in version 16, Facebook shows how important this framework is for them. Therefore, Facebook is investing a lot of effort into React and a healthy community. In addition, we REALLY enjoy writing React components – so much so, that we have to move this library into adopt!
React claims to be "the V in MVC". But for us it is much more than that. React improved the way we approach frontend applications as we build them. Its functional way of writing components and its declarative JSX syntax help us to build interactive UIs very efficiently. React's one-way data flow keeps everything modular and fast and makes even large applications more readable.
Components are the central point of React - once we fully started thinking in react, our components became smaller, more reusable and better testable.
After some 1.5 years of experience with React and the steady growth of the community and ecosystem around it, we can confidently say that we still see great potential to build upcoming projects with React.