Reaccionar 17: ¿Nada nuevo?

Descargo de responsabilidad

Esta es una traducción gratuita del artículo original del blog oficial. ¿Por qué gratis? Más bien, porque el original contiene demasiada agua y referencias a las razones de ciertas decisiones tomadas en el pasado.

¿Nada nuevo?

La decimoséptima versión de React es inusual por la falta de nuevas características y / o funcionalidad. Esta versión se centra en agregar la capacidad de actualizar gradualmente proyectos para las próximas versiones principales de la biblioteca en el futuro , lo cual es relevante para proyectos con una base de código grande.

Concurrent Mode 17 , , . () .

7 React " ". , . , - , , Context API, .

React 17 . React 17. .

: . . , (React 18, React 19), - lazy- React 17.

, (lazy-load) React. React 17.0.0-rc.0, , , React 16.8

React 17

, onClick, DOM-. document. , .

, , React , jQuery, . event.stopPropagation(): (propagation) , . React. Atom .

, document:

const rootNode = document.getElementById('root'); // <--  
ReactDOM.render(<App />, rootNode);

(SyntheticEvent Even Pooling)

17- , .

function handleChange(event) {
  //    16 React    event.persist()
  setData(data => ({
    ...data,
    // This crashes in React 16 and earlier:
    text: event.target.value
  }));
}

, event.persist()

. Facebook . , - !

. React .

  • onScroll , ;

  • onFocus onBlur " " focusin focusout;

  • onClickCapture Capture- .

useEffect()

useEffect(() => {
  // This is the effect itself.
  return () => {
    // This is its cleanup.
  };
});

, , componentWillUnmount(), , , , , .

, - useLayoutEffect(), .

undefined

, .

undefined , React.forwardRef React.memo.

let Button = forwardRef(() => {
  // We forgot to write return, so this component returns undefined.
  // React 17 surfaces this as an error instead of ignoring it.
  <button />;
});

let Button = memo(() => {
  // We forgot to write return, so this component returns undefined.
  // React 17 surfaces this as an error instead of ignoring it.
  <button />;
});

, stack trace . , , .

, Button , React- .

17- React , React-, , production-.

— , . , React Native for Web , .

17- React . - , , .

ReactTestUtils.SimulateNative . , .

Changelog

, , .

La nueva versión de React también incluye 5 cambios en React, 37 cambios en React Dom, un par de cambios en React DOM Server, un cambio en React Test Rerender.

¿Qué pasa con el modo concurrente?

Este modo aún es experimental. En el 17 º Reaccionar sido fijado muchos errores, eliminado algunos unstable_métodos, y añadido otros nuevos. Es demasiado pronto para usarlo en producción, pero definitivamente es posible y necesario pincharlo. Por ejemplo, hay una biblioteca para trabajar con Firebase, reactfire , cuyos desarrolladores hicieron que la versión principal dependiera del modo concurrente. Desafortunadamente, el repositorio parece estar abandonado durante los últimos meses. Espero que esto se solucione.




All Articles