Я настраиваю большую систему, поэтому я хочу иметь децентрализованные файлы router.js для каждого модуля. У каждого из них будут объявления массивов маршрутов, которые будут помещены в основной массив маршрутов.
Итак, на данный момент у меня есть своего рода корень файла маршрутов, в котором есть VueRouter
экземпляры и настройки, и он импортирует первый уровень файлов route.js для создания массива маршрутов.
основной файл routes.js
import DashboardRoutes from './views/dashboard/routes'
Vue.use(Router)
export default new Router({
mode: 'history',
base: process.env.BASE_URL,
routes: [
{// Root public site
path: '/',
component: () => import('./views/pages/Index'),
children: PagesRoutes
},
name: 'page_error',
path: '*',
component: () => import('./views/error/Error')
}
].concat(
DashboardRoutes
)
})
модуль (первый уровень) файл routes.js
import InventoryRoutes from './inventarios/routes'
const routes = {
path: '/panel',
component: () => import('./Index'), // This Index has a layout with a router-view in it
children: [
// Inicio del panel
{
name: 'dashboard',
path: '',
component: () => import('./Dashboard'),
}
].concat(
InventariosRoutes
)
}
export default routes
Компоненты (второй уровень) файл routes.js
const routes = {
path: 'inventario',
name: 'panel_inventario',
component: { template: '<router-view/>' },
children: [
// Productos y servicios
{
name: 'panel_inventarios_productos-servicios',
path: 'productos-servicios',
component: () => import('./productos-servicios/ProductosServiciosHome'),
},
]
}
export default routes
В дереве компонентов vue-tools
я вижу AnnonymousComponent
в том месте, где должен быть маршрутизатор моих детей.
Обновлять
Я просто создаю внешний компонент, чтобы назвать его и проверить, отображается ли он так
Компоненты (второй уровень) файл routes.js
const loader = {
template: `
<div class="InventarioLoader">
<router-view></router-view>
</div>
`,
name: 'InventarioLoader'
}
const routes = {
path: 'inventario',
name: 'panel_inventario',
component: loader,
children: [
// children go here
]
}
Теперь я вижу свой InventarioLoader
компонент, но все еще не вижу, чтобы в нем рендерились мои дочерние компоненты.
Обновлять
Я вижу эту ошибку на консоли
Вы используете сборку Vue только для времени выполнения, где компилятор шаблонов недоступен. Либо предварительно скомпилируйте шаблоны в функции рендеринга, либо используйте сборку, включенную в компилятор.
{ template: '<router-view/>' }
анонимный компонент? Попробуйте добавить к немуname
- person Phil   schedule 10.10.2019<router-view></router-view>
, но тоже не сработало, это решение, которое я встречал здесь в подобных вопросах, но у меня оно не сработало. Проблема в том, что компонент не отображается, но я знаю, что маршрутизатор работает, потому что у меня есть наблюдатель для объекта маршрута, чтобы показать заголовок в навигаторе, и он работает - person Arnaldo Perez   schedule 10.10.2019/panel/inventario/productos-servicios
? Кроме того, я бы переместил*
маршрут в самый конец определения маршрутов. См. router.vuejs.org. / guide / essentials /. На самом деле это, наверное, твоя проблема - person Phil   schedule 10.10.2019