createFactory¶
Устарело
Этот API будет удален в одной из будущих основных версий React.
createFactory позволяет вам создать функцию, которая производит элементы React заданного типа.
1 | |
Описание¶
createFactory(type)¶
Вызовите createFactory(type) для создания фабричной функции, которая производит элементы React заданного типа.
1 2 3 | |
Затем вы можете использовать его для создания элементов React без JSX:
1 2 3 4 5 6 7 8 9 10 | |
Параметры¶
type: Аргументtypeдолжен быть допустимым типом компонента React. Например, это может быть строка имени тега (например,'div'или'span') или компонент React (функция, класс или специальный компонент типаFragment).
Возвращает¶
Возвращает фабричную функцию. Эта фабричная функция получает в качестве первого аргумента объект props, затем список аргументов ...children и возвращает элемент React с заданными type, props и children.
Использование¶
Создание элементов React с помощью фабрики¶
Хотя большинство проектов React используют JSX для описания пользовательского интерфейса, JSX не обязателен. В прошлом createFactory был одним из способов описания пользовательского интерфейса без JSX.
Вызовите createFactory, чтобы создать заводскую функцию для определенного типа элемента, например `'кнопка``:
1 2 3 | |
Вызов этой фабричной функции приведет к созданию элементов React с предоставленными вами пропсами и дочерними элементами:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
Так createFactory использовался в качестве альтернативы JSX. Однако createFactory устарел, и вы не должны вызывать createFactory в любом новом коде. О том, как отказаться от createFactory, читайте ниже.
Альтернативы¶
Копирование createFactory в ваш проект¶
Если в вашем проекте много вызовов createFactory, скопируйте эту реализацию createFactory.js в ваш проект:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
1 2 3 4 5 | |
Это позволит вам сохранить весь ваш код неизменным, за исключением импорта.
Замена createFactory на createElement¶
Если у вас есть несколько вызовов createFactory, которые вы не против перенести вручную, и вы не хотите использовать JSX, вы можете заменить каждый вызов функции фабрики вызовом createElement. Например, вы можете заменить этот код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
с помощью этого кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Вот полный пример использования React без JSX:
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Замена createFactory на JSX¶
Наконец, вы можете использовать JSX вместо createFactory. Это наиболее распространенный способ использования React:
1 2 3 4 5 6 7 8 9 10 11 | |
Иногда существующий код может передавать некоторую переменную в качестве type вместо константы типа 'button':
1 2 3 4 5 | |
Чтобы сделать то же самое в JSX, нужно переименовать переменную так, чтобы она начиналась с заглавной буквы, например Type:
1 2 3 4 | |
В противном случае React будет интерпретировать <type> как встроенный HTML-тег, поскольку он строчный.