Поскольку вы используете приложение create-реакции-приложение, которое внутренне использует веб-пакет, вы можете заглянуть в require-context
. Это поможет вам динамически импортировать все файлы в папке, которые соответствуют определенному регулярному выражению. (например, заканчивающийся на .jsx / .js)
Однако я бы посоветовал вам против этого:
- Ни в коем случае вы не будете знать, какие маршруты вы обслуживаете в настоящее время.
- Это может снизить читабельность кода.
- Возможно, вам также придется экспортировать сопоставление (
path
в маршруте) компонента вместе с самим компонентом.
Чтобы избежать всего этого, вы можете просто создать файл index.js
в вашем компоненте Views
, для которого потребуется любой новый компонент маршрута, который вы создадите, и вернуть окончательный массив, который вы сформировали в файле App.js
.
По сути, / Views / index.js :
// Import all components here
import Button from './components/Views/Button/Button';
import Color from './components/Views/Color/Color';
import Card from './components/Views/Card/Card';
import Filter from './components/Views/Filter/Filter';
const routes = [
{
path: "/",
name: 'home',
exact: true,
main: () => <h2>Home</h2>
},
{
path: "/button",
name: 'Button',
main: () => <Button />
},
{
path: "/color",
name: 'Color',
main: () => <Color />
},
{
path: "/card",
name: 'Card',
main: () => <Card />
},
{
path: "/filter",
name: 'Filter',
main: () => <Filter />
},
// add new routes here
];
export default routes;
In SideBar.js :
import routes from 'path/to/views/Views';
//rest of your code to render the routes.
Таким образом, вы очистите код в своем App.js, а также сможете эффективно разделить проблемы отдельных компонентов.
Надеюсь, это имеет смысл:)