LINUX.ORG.RU

Классификация компонентов React.js

 ,


0

1

Всем привет! Кто работал с сабжем, есть идеи, как удобно разделить компоненты на типы? Так, чтобы каждый тип соответствовал директории, в духе:

components/
    blocks/
    elements/
    layouts/



Последнее исправление: xenohunter (всего исправлений: 1)

Что такое «удобно»?

anonymous
()

Как будет тебе удобно, так и разделяй. Я например вообще всё в одну кучу люблю скидывать.

Получается что-то вроде такого:

source/
    app/
        component.js
        style.styl
    topic/
        component.js
        style.styl
    comment/
        component.js
        style.styl
    user/
        component.js
        style.styl
    ...
    app.js
    components.js

В components.js:

import App from 'app/component';
import Topic from 'topic/component';
...
export {
    App,
    Topic,
    ...
};

В самих компонентах импортирую из '../components'; В app.js импорт полифилов и рендеринг приложения.

Вот, как-то так.

Kilte ★★★★★
()

В целом, поддерживаю ответившего выше Kilte.

Мой личный опыт:

controls - общие (shared) компоненты (MegaInput, SuperTabs, PopupMenu)
containers - умные (smart) компоненты (Page1, Page2)
components - тупые (dumb) компоненты (TopBar, UserInfo)

в каждой из папок есть папки с самим компонентом:

controls/PopupMenu/index.js
controls/PopupMenu/PopupMenu.js
controls/PopupMenu/PopupMenu.css
controls/PopupMenu/PopupMenuItem.js
controls/PopupMenu/PopupMenuItem.css

Не обещаю, что для всех подойдет.

noomorph
()
Последнее исправление: noomorph (всего исправлений: 3)
Ответ на: комментарий от Kilte

Не, здесь большой проект, в кучу - не катит. Но за ответ спасибо.

xenohunter
() автор топика
Ответ на: комментарий от noomorph

За примеры спасибо; про табы, например, я не подумал.

На данный момент, пришёл примерно к этому:

  • routes (страницы под конкретные пути)
  • layouts (большие куски вёрстки, табы сюда же)
  • smart (функциональные компоненты)
  • dumb (кнопки, формы, вот это всё)
xenohunter
() автор топика

Компоненты React.js классифицируются как «ненужно».

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.