createFactory
createFactory מאפשרת ליצור פונקציה שמייצרת React elements מסוג נתון.
const factory = createFactory(type)Reference
createFactory(type)
קראו ל-createFactory(type) כדי ליצור פונקציית factory שמייצרת React elements מסוג type נתון.
import { createFactory } from 'react';
const button = createFactory('button');ואז אפשר להשתמש בה כדי ליצור React elements בלי JSX:
export default function App() {
return button({
onClick: () => {
alert('Clicked!')
}
}, 'Click me');
}Parameters
type: הארגומנטtypeחייב להיות סוג קומפוננטת React תקין. למשל, מחרוזת שם תגית (כמו'div'או'span'), או קומפוננטת React (פונקציה, מחלקה, או קומפוננטה מיוחדת כמוFragment).
Returns
מחזירה פונקציית factory. פונקציית ה-factory הזו מקבלת אובייקט props כארגומנט ראשון, אחריו רשימת ארגומנטים ...children, ומחזירה React element עם ה-type, ה-props וה-children הנתונים.
שימוש
יצירת React elements עם factory
למרות שרוב פרויקטי React משתמשים ב-JSX כדי לתאר את ממשק המשתמש, JSX אינה חובה. בעבר, createFactory הייתה אחת הדרכים לתאר ממשק משתמש בלי JSX.
קראו ל-createFactory כדי ליצור פונקציית factory עבור סוג אלמנט מסוים כמו 'button':
import { createFactory } from 'react';
const button = createFactory('button');קריאה לפונקציית ה-factory הזו תייצר React elements עם ה-props וה-children שסיפקתם:
import { createFactory } from 'react'; const button = createFactory('button'); export default function App() { return button({ onClick: () => { alert('Clicked!') } }, 'Click me'); }
כך השתמשו ב-createFactory כחלופה ל-JSX. אבל createFactory הוצאה משימוש, ולא כדאי לקרוא לה בקוד חדש. ראו בהמשך איך לבצע מיגרציה מ-createFactory.
חלופות
העתקת createFactory לתוך הפרויקט שלכם
אם בפרויקט שלכם יש הרבה קריאות ל-createFactory, העתיקו את המימוש הבא של createFactory.js לתוך הפרויקט:
import { createFactory } from './createFactory.js'; const button = createFactory('button'); export default function App() { return button({ onClick: () => { alert('Clicked!') } }, 'Click me'); }
כך אפשר להשאיר את כל הקוד ללא שינוי מלבד הייבואים.
החלפת createFactory ב-createElement
אם יש לכם מעט קריאות ל-createFactory ואתם לא מתנגדים לבצע המרה ידנית, ואתם לא רוצים להשתמש ב-JSX, אפשר להחליף כל קריאה לפונקציית factory בקריאה ל-createElement. למשל, אפשר להחליף את הקוד הזה:
import { createFactory } from 'react';
const button = createFactory('button');
export default function App() {
return button({
onClick: () => {
alert('Clicked!')
}
}, 'Click me');
}בקוד הזה:
import { createElement } from 'react';
export default function App() {
return createElement('button', {
onClick: () => {
alert('Clicked!')
}
}, 'Click me');
}הנה דוגמה מלאה לשימוש ב-React ללא JSX:
import { createElement } from 'react'; export default function App() { return createElement('button', { onClick: () => { alert('Clicked!') } }, 'Click me'); }
החלפת createFactory ב-JSX
לבסוף, אפשר להשתמש ב-JSX במקום createFactory. זו הדרך הנפוצה ביותר להשתמש ב-React:
export default function App() { return ( <button onClick={() => { alert('Clicked!'); }}> Click me </button> ); };