Советы по реагированию на темы - PullRequest
0 голосов
/ 25 октября 2019

Мы запустили новый проект с разными темами, по стеку реагируют + ts + css-модули. Для создания CSS-тем мы использовали ловушки context и useContext, но нам действительно нужно найти идиоматический способ реализовать возможность предоставлять разную компоновку (компоненты JSX).

На данный момент я вижу 2 варианта: 1) Динамический импорт(когда я пробовал это в прошлый раз, это не работает хорошо), я пробовал эту технику для импорта компонента "тема" полагаться на переменную env следующим образом.

process.env.theme ? import(`src/header/themes/${process.env.theme}.tsx`) : import(`src/header/header.tsx`)

но запуск веб-пакета жаловаться несуществующий файл.

2) рендеринг реквизита через контекст: мы можем извлечь все «визуализируемые» элементы из наших компонентов и передать его через контекст, но я не могу понять, как мы можем сделать это умно, не переписывая все нашикомпоненты

3) Могут ли помочь монорепо (например, рабочие пространства lerna / yarn)?

Может быть, есть какие-то руководства | проекты github | советы?

Спасибо.

...