Недавно я взял работу, которая не использует ES6, но там, где есть проект реакции. У меня есть фон ES6 и просто написал большой файл, который я не могу понять, как тестировать без использования ES6.Как протестировать частные компоненты React
В принципе, у меня есть основной компонент, который имеет около 7 частных компонентов, которые в основном построены как отдельные компоненты для удобства чтения, тестирования и производительности. (Будучи в состоянии иметь РЕКОМЕНДУЕМОЕ обновление компонентов частных компонентов огромный толчок)
Вот мой вопрос:
без экспорта моих личных компонентов я не могу найти способ, чтобы написать тесты их.
, потому что мы не используем ES6, я не могу использовать синтаксис
export default MyComponent
export PrivateComponent1
export PrivateComponent2
, единственный способ, которым я знаю, чтобы экспортировать несколько компонентов из одного файла заключается в использовании
exports.MyComponent = MyComponent
exports.PrivateComponent1 = PrivateComponent1
exports.PrivateComponent2 = PrivateComponent2
однако это не подходит, потому что тогда в заявке на требование мне нужно использовать
const MyComponent = require('MyComponent').MyComponent
Для меня идеально было бы использовать 1 ike:
module.exports = MyComponent
exports.PrivateComponent1 = PrivateComponent1
exports.PrivateComponent2 = PrivateComponent2
Но это, похоже, не является действительным.
Кроме того, предпочтительно не разбивать его на отдельные файлы.
... Это то, что я получаю не делать TDD :(
Почему у вас есть несколько компонентов в одном файле?В идеале вы должны абстрагировать каждый компонент в свой собственный файл, даже если он используется только одним другим компонентом. У слоя абстракции есть свои преимущества, плюс вы можете просто экспортировать каждый компонент отдельно и не иметь дело с проблемой множественного экспорта по одному файлу. – finalfreq
компоненты могут получить очень подробные данные, которые, как я считаю, действительно помогают читаемости, производительности и отладки. Они не хотели загрязнять папку с кучей меньших компонентов. – MichaelTaylor3D
В этом случае я бы сказал, что ваш единственный вариант - экспортировать объект с парами ключ/значение и должен выполнить 'const MyComponent = require ('MyComponent'). MyComponent' – finalfreq