Comparaison intéressante des hooks React et de Composition API (Vue 3).
Perso, Composition API me fait penser à React-Spring, ReactNative Animated, React-Hook-Form... Bref, un moyen d'updater l'UI sans passer par un re-render complet du composant, pour des raisons de performance.
Je pense qu'on peut avoir ce type d'API dans React, et pour autant être compatible avec le concurrent mode React (c'est ce que semble proposer Reactivue qui permet d'utiliser la Composition API dans React).
Je suis encore mitigé sur cette Composition API. Elle règle certains problèmes des hooks (re-renders inutiles, stale closure, réactivité et performance...), mais je trouve que son système de proxies est un peu implicite, et ça m'étonnerait pas qu'il y ait des retours d'ici quelques temps...
L'équipe de Tailwind propose une lib de composants (React et Vue pour l'instant) sans style, accessibles, censés s'intégrer facilement avec Tailwind. Bref, une nouvelle alternative à Reakit, React-Aria...
Airbnb publie Visx, une librairie React de primitives de data visualisation qu'ils utilisent en interne depuis plusieurs années.
Ca n'est pas une librairie de charting, mais réellement de primitives bas niveau. A comparer à D3 (qui est d'ailleurs parfois utilisé en tant que détail d'implémentation), mais mieux intégré à React.
Curieux de voir si ça tourne sur ReactNative d'ailleurs :)
Introduction à la physique des ressorts et ses paramètres pour rendre les animations plus réalistes, avec un article de Josh Comeau très interactif, comme à son habitude.
Spreadsheet React-Spring proposée à la fin.
Le renderer React pour Three passe en v5. Entièrement réécrit, rétro-compatible, avec pas mal d'améliorations de perf.
On en sait maintenant plus sur Poimandres (collectif derrière React-Spring, Jotai, Zustand...), qui se positionne sur le dev créatif, avec tout un écosystème de libs React assez performantes.
A noter également la sortie de React-XR, pour la réalité augmentée/virtuelle.
Kent C Dodds explique pourquoi il faut considérer useEffect comme un mécanisme de synchronisation plutôt qu'un équivalent des class lifecycles, avec également quelques tips pour bien découper/encapsuler ses hooks et les rendre réutilisables par composition.
Note: il y a quelques temps, Dan Abramov avait évoqué sur Twitter qu'il était pas impossible qu'un jour React execute plusieurs fois un useEffect, alors même que les dépendances n'ont pas changé!
Nouveau blog post de la team ReactJS sur le nouveau JSX transform qui vient avec React 17.
TLDR:
Fait partie d'une stratégie de migration en plusieurs étapes (déprécations et breaking changes prévus, cf la RFC)
Nouvelle RFC pour un support i18n dans NextJS, censé supporter plusieurs patterns de localisation tels que un sous-domaine par locale, ou un seul domaine mais la locale en pathname.
Je suis particulièrement intéressé par cette RFC, car je travaille actuellement pour Facebook sur le support de i18n pour Docusaurus :)
Compatible avec React-Native 0.63, iOS 14. On peut enfin utiliser le nouveau LogBox dans Expo, et aussi utiliser Flipper... Première apparition de Reanimated 2 dans Expo, ça fait plaisir!
Grosse release avec pas mal d'autres choses intéressantes, voir le post officiel.
Note: Expo ne compte pas inclure de nouvelles librairies demandées, type react-native-webrtc, car on pourra normalement bientôt ajouter du code natif sans éjecter.
Release importante, puisqu'elle ajoute le support du web! A noter que Expo SDK 39 contient Reanimated 2 alpha 6, mais peut utiliser le support web dès aujourd'hui avec alpha 6.1 ;)
GasBuddy explique pourquoi et comment ils considèrent ReactNative pour remplacer leurs apps natives actuelles. Ils ont déjà commencé un POC et releasé quelques librairies ReactNative (react-navigation-codegen me semble intéressante).
🇫🇷 Un article en français c'est tellement rare de nos jours :)
Médialab explique pourquoi ils sont passés d'un site Gatsby à un générateur de site statique plus simple, fait maison. (TLDR: le site n'est pas très interactif).
Flutter Windows sort en alpha. Flutter supporte officiellement les plateformes Windows, MacOS et Linux.
Une alternative intéressante à ReactNative pour le cross-platform. Il y a d'ailleurs un tutoriel pour les devs ReactNative qui veulent apprendre Flutter.
Après Kotlin sur iOS, on a le droit à Swift sur Windows. De plus en plus de langages tournent sur de plus en plus de plateformes, et il semble de plus en plus simple de partager au moins une partie du code, sans nécessairement recourir à du JavaScript.
Progression de plusieurs proposals pour de nouvelles features dans JavaScript, dont Error Cause et String dedent qui m'intéressent pas mal :)
Voir aussi l'article de Axel Rauschmayer sur les features qui arrivent dans ES2021 (stage 3 et 4).
J'ai trouvé cette technique, intéressante lorsqu'on a besoin d'optimiser le parallélisme de traitements asynchrones.