React Fire: Modernizing React DOM
Problem
------------- For latest status, see an update from June 5th, 2019: https://github.com/facebook/react/issues/13525#issuecomment-499196939 ------------- This year, the React team has mostly been focused on fundamental improvements to React. As this work is getting closer to completion, we're starting to think of what the next major releases of React DOM should look like. There are quite a few known problems, and some of them are hard or impossible to fix without bigger internal changes. We want to undo past mistakes that caused countless follow-up fixes and created much technical debt. We also want to remove some of the abstraction in the event system which has been virtually untouched since the first days of React, and is a source of much complexity and bundle size. We're calling this effort "React Fire". š„ React Fire React Fire is an effort to modernize React DOM. Our goal is to make React better aligned with how the DOM works, revisit some controversial past decisions that led to problems, and make React smaller and faster. We want to ship this set of changes in a future React major release because some of them will unfortunately be breaking. Nevertheless, we think they're worth it. And we have more than 50 thousands components at Facebook to keep us honest about our migration strategy. We can't afford to rewrite product code except a few targeted fixes or automated codemods. Strategy There are a few different things that make up our current plan. We might add
Unverified for your environment
Select your OS to check compatibility.
1 Fix
Solution: React Fire: Modernizing React DOM
I love every of these points, except the `className` change. It seems downright contradictory to the goal the other points are pursuing (aligning with the DOM API). React binds to DOM properties, not HTML attributes (this is this even articulated in the first point). The DOM Element property is named `className`, not `class`. So why would it be named `class` in React?
Trust Score
12 verifications
- 1
I love every of these points, except the `className` change. It seems downright
I love every of these points, except the `className` change. It seems downright contradictory to the goal the other points are pursuing (aligning with the DOM API). React binds to DOM properties, not HTML attributes (this is this even articulated in the first point). The DOM Element property is named `className`, not `class`. So why would it be named `class` in React?
Validation
Resolved in facebook/react GitHub issue #13525. Community reactions: 545 upvotes.
Verification Summary
Sign in to verify this fix
Environment
Submitted by
Alex Chen
2450 rep