createFactory
createFactory
permite crear una función que produce elementos React de un tipo determinado.
const factory = createFactory(type)
Usage
Creación de elementos React con una Factory
Aunque la mayoría de los proyectos React utilizan JSX para describir la interfaz de usuario, no se requiere JSX. En el pasado, createFactory
solía ser una de las formas de describir la interfaz de usuario sin JSX.
Llama a createFactory
para crear una función de Factory para un tipo de elemento específico como 'button'
:
import { createFactory } from 'react';
const button = createFactory('button');
La llamada a esa función de Factory producirá elementos React con los props y los hijos que hayas proporcionado:
import { createFactory } from 'react'; const button = createFactory('button'); export default function App() { return button({ onClick: () => { alert('Clicked!') } }, 'Click me'); }
Así es como createFactory
se utilizaba como alternativa a JSX. Sin embargo, createFactory
está obsoleto, y no deberías llamar a createFactory
en ningún código nuevo. Vea cómo migrar desde createFactory
a continuación.
Alternativas
Copiando createFactory
en tu proyecto
Si tu proyecto tiene muchas llamadas a createFactory
, copia esta implementación de createFactory.js
en tu proyecto:
import { createFactory } from './createFactory.js'; const button = createFactory('button'); export default function App() { return button({ onClick: () => { alert('Clicked!') } }, 'Click me'); }
Esto le permite mantener todo su código sin cambios, excepto las importaciones.
Sustitución de createFactory
por createElement
.
Si tienes unas cuantas llamadas a createFactory
que no te interesa importa manualmente, y no quieres usar JSX, puedes reemplazar cada llamada a una función Factory con un createElement
llamada. Por ejemplo, puede sustituir este código:
import { createFactory } from 'react';
const button = createFactory('button');
export default function App() {
return button({
onClick: () => {
alert('Clicked!')
}
}, 'Click me');
}
con éste código:
import { createElement } from 'react';
export default function App() {
return createElement('button', {
onClick: () => {
alert('Clicked!')
}
}, 'Click me');
}
Aquí tienes un ejemplo completo de uso de React sin JSX:
import { createElement } from 'react'; export default function App() { return createElement('button', { onClick: () => { alert('Clicked!') } }, 'Click me'); }
Sustitución de createFactory
por JSX
Por último, puedes utilizar JSX en lugar de createFactory
. Esta es la forma más común de utilizar React:
export default function App() { return ( <button onClick={() => { alert('Clicked!'); }}> Click me </button> ); };
Referencia
createFactory(type)
Llama a createFactory(type)
para crear una función de fábrica que produzca elementos React de un type
dado.
import { createFactory } from 'react';
const button = createFactory('button');
Entonces puedes usarlo para crear elementos React sin JSX:
export default function App() {
return button({
onClick: () => {
alert('Clicked!')
}
}, 'Click me');
}
Parámetros
type
: El argumentotype
debe ser un tipo de componente React válido. Por ejemplo, puede ser una cadena de nombre de etiqueta (como'div'
o'span'
), o un componente React (una función, una clase o un componente especial comoFragment
).
Returns
Devuelve una función Factory. Esa función recibe un objeto props
como primer argumento, seguido de una lista de argumentos ...children
, y devuelve un elemento React con el type
, props
y children
dados.