2015-04-19 1 views
3

Я все еще пытаюсь обернуть голову вокруг внешнего состояния. Существует ли общая практика настройки магазинов для ресурса? Например, мой веб-УПА:С Reflux, 2 магазина или 1 магазин для ресурса? (Велосипеды/Текущий байк против велосипедов)

GET /bikes 
GET /bikes/:id 

Я начал с только BikeStore и bikes: []. Теперь я работаю над компонентом ShowBike и не уверен, что я должен использовать BikeStore (не совсем точно) или сделать второй магазин для отдельных элементов.

ответ

2

Концепция магазина в Flux - довольно простая абстракция на клиенте, как вы получаете доступ к данным. Отдельные магазины должны использоваться для разных видов данных. В вашем случае ресурс одинаков, нет никаких веских оснований держать отдельные магазины для велосипедов. Даже больше: магазины для отдельных предметов не предназначены для использования, и их следует избегать.

Из потока docs:

Stores содержат состояние приложения и логику. Их роль несколько похожа на модель в традиционном MVC, но они управляют состоянием многих объектов - они не представляют собой одну запись данных, подобных моделям ORM. Они также не похожи на коллекции Backbone. Более чем просто управление коллекцией объектов в стиле ORM, магазины управляют состоянием приложения для определенного домена в приложении.

+0

Но не в магазине есть прямая переписка с его представлением? Я полагаю, что над «/ bikes» и '/ bikes /: id' имеет другое представление, и каждый из них имеет различное состояние, коллекцию велосипедов и один велосипед, как вы представляете это в одном магазине? – fudanchii

+0

Существует некоторая связь между магазинами и видами в шаблоне Flux. Представление может получать данные из разных магазинов. Магазин будет уведомлять о любых изменениях данных во всех подписанных представлениях, представления будут вызывать рендеринг с новыми свежими данными. –

+0

Вам не нужно иметь отношения один к одному между магазинами. В вашем случае я бы сохранил только один магазин, и ничто не мешает вам получить геттер в магазине, чтобы вернуть вам велосипед, который вы хотите увидеть. Что-то вроде getBikeById. Вы все еще должны иметь некоторую логику, чтобы обновить список велосипедов, но вы сохранили бы логику в одном месте. –

 Смежные вопросы

  • Нет связанных вопросов^_^