Требуется ли импорт или импорт Реагента?
Требуется ли импорт или импорт React Native?
Все, что я могу найти, это старый учебник с использованием require(), но когда я запускаю init-init init, я получаю проект, который использует импорт. Это связано с недавними изменениями в React Native?
В чем основные отличия?
Ответы
Ответ 1
Да, последние учебники и примеры React Native используют новый синтаксис import
.
https://facebook.github.io/react-native/docs/tutorial.html
В терминах различий между CommonJS (require) и модулями ES6 (импорт) здесь есть несколько хороших ответов:
Использование Node.js требует импорта/экспорта ES6
Я думаю, что большинство людей предпочитают новый синтаксис ES6. Однако в настоящее время JS-модули не используют модули ES6, поэтому их необходимо преобразовать с помощью транспилятора ES6 (например, Babel) в операторы require
. React Native - это настройка, чтобы сделать это из коробки, поэтому вы можете просто начать использовать import
, и он должен просто работать.
Ответ 2
Основное отличие состоит в том, что import
является синтаксисом ECMAScript 6, а require
- ECMAScript 5. Оба являются взаимозаменяемыми, но импорт имеет хороший синтаксис для переименования: export { MY_CONST as THE_CONST, myFunc as theFunc };
.
Ответ 3
React Native теперь использует Babel для компиляции модулей (doc). Если вы используете приложение с create-react-native-app
, в папке node_modules
есть плагин Babel с именем
babel-plugin-transform-es2015-modules-commonjs
на который ссылается приложение.
Как следует из названия, этот плагин просто преобразует синтаксис модулей ES2015 в CommonJS.
Для основных отличий мне нравится этот ответ, появляющийся в другом сообщении.