Я хотел бы попросить мнения/предложения о структуре папок и пространствах имен для проекта, над которым я работаю. Это Play Framework 2.0 и React + Backbone для пользовательского интерфейса.Play framework + React, namespaces
Текущая структура:
/assets
/css
/js
/lib
someLib.js
/models
bar.js
/ui
/components
Foo.jsx
App.jsx
router.jsx
main.js
У меня есть папка /assets/js
. Внутри него есть main.js
, где я загружаю свое приложение.
// main.js
import router from './ui/router';
window.addEventListener('DOMContentLoaded', router);
router.jsx
содержит мои маршруты используются react-router
, а также импорт некоторых основных компонентов, используемых этими маршрутами.
// router.jsx
import App from './App';
import Foo from './components/Foo';
...
const Routes = {
<ReactRouter.Route handler={App} path="/">
<ReactRouter.Route name="foo" path="foo" handler={Foo} />
</ReactRouter.Route>
}
export default function() {
ReactRouter.run(
Routes,
ReactRouter.HistoryLocation,
function(Handler) {
React.render(<Handler/>, document.body);
}
);
}
У меня есть также модель Backbone, которые проводная с React и хранить их в /assets/js/models
. .
// Foo.jsx
import bar from './../../models/bar';
..
// some react code
export default Foo;
И моя модель файла:
// bar.js
import someLib from './../lib/someLib';
..
// some backbone model code
export default Bar;
Это он. То, что я на самом деле не люблю те длинные пути, как import API from '../../../api/websocket';
или import API from '../../../api/websocket';
Я также хотел бы избежать ссылок ReactRouter.Route
но только Route
и т.д.
Я думал о какой-то центральной точке импорта/экспорта , но не уверен, что является лучшей практикой в таких ситуациях.