Absolutamente no ( con la excepción de quizás usarlo para hacer llamadas ajax ) . No abarrotes tu código React con jQuery.
Ni siquiera usaría jQuery para leer el DOM. Manipular el DOM con jQuery dentro de React es simplemente desagradable … un gran antipatrón para la forma de codificación React.
Codigo de producción
- Con el estilo / convención React de programación, significa que el desarrollador debe luchar por la simplicidad. Los desarrolladores deberían preferir descomponer el código en componentes simples muy pequeños. Si mantiene sus componentes pequeños, el JS debería ser bastante mínimo en cada componente porque los ha dividido en módulos muy pequeños para que cada módulo tenga menos JS. (nota al margen, primero desarrollo toda mi prueba de código, por lo que para mí TDD, naturalmente, me ayuda mucho a recordar esto, ya que codifico obligándome a modularizar mi código JS a menudo)
- Las solicitudes de Ajax y la lógica de estado deben estar en componentes separados o módulos separados que sus componentes de presentación. Mantenga esas cosas JS de vainilla si puede … intente mantener jQuery fuera de eso que no sean llamadas ajax. Estoy de acuerdo en que el código xhr es simplemente feo.
Pruebas
- No lo uses en las pruebas. Debe representar un componente que desee probar en algo como jsdom y usar marcadores (clases css) en su React JSX que le brinde un punto de “inicio” para el componente renderizado en el que comenzar a trabajar (leer valores de elementos DOM representados o lo que sea )
- Para trabajar con el componente renderizado en las pruebas, use React Test Utils y renderice el componente a algo como JSDOM, luego simplemente use la API web (navegador) usando los selectores css para atravesar el DOM (usando querySelector):
const component = render (),
renderingComponent = find (componente, ‘.ft-company-list’);
renderingComponent [index] .querySelector (‘span’). textContent;
- O use Enzyme de airbnb (y renderice componentes a jsdom) que pone un buen envoltorio (y una huella mucho más pequeña que usar algo como jQuery ) que se casa con la manipulación DOM de la API web para trabajar con componentes React para que pueda hacer una forma similar a jQuery probar sus componentes de reacción básicamente sin tener que usar querySelector sin procesar de la API web y otras construcciones de API web de nivel inferior. Podría hacer lo anterior, algo así, donde el contenedor es su enzima que envuelve su componente de reacción renderizado, que luego puede usar la API de enzima para trabajar con el DOM en el componente renderizado:
const wrapper = mount ();
esperar (wrapper.find (‘. ft-company-list’). childAt (0) .text) .to.equal (‘algo’);
(Este es un código inventado / pseudo para Enzyme aquí, no lo he ejecutado, por lo que puede que no funcione, pero tienes la idea con Enzyme).
Lo bueno de Enzyme es que está a medio camino entre algo como la API web sin procesar y algo como jQuery. No eres tan “tonto” usando Enzyme porque todavía te enseña a usar la API web, más cerca de cómo es la sintaxis de la API web … en lugar de dejarte completamente desorientado y solo confías en “oh, solo hace esto por mí” , es un completo agujero negro de magia “… que para mí no es bueno confiar como desarrollador en estos días, especialmente a medida que las aplicaciones JS y la web han crecido en complejidad.
Mantenga las cosas tan simples como pueda .
Código de prueba : desea que su código de prueba , la infraestructura de prueba sea lo más simple posible. La introducción de bibliotecas, marcos, etc., donde especialmente en las pruebas, muchas veces podría prescindir (puede prescindir cuando ha mantenido su código de producto muy simple y dividido en muchos módulos pequeños) introduce complejidad en sus pruebas.
Código de prueba y producción : Sí, habrá muchas aplicaciones de middleware que usará con las aplicaciones Node. PERO primero trate de mantenerse alejado de los valores predeterminados para usar marcos o bibliotecas cada vez que necesite poder hacer algo que no haya hecho antes (no sea feliz el marco, el middleware o la biblioteca). ¡Mire y vea lo que podría hacer primero con su cerebro, o primero mire para ver qué bibliotecas ya usa que podría aprovechar! Sin usar un marco de trabajo o biblioteca cada vez que necesite algo, tal vez también aprenda algunas cosas que de otra manera no habría aprendido.