javascript - vue.js - 嵌套组件架构中的路由
问题描述
我使用 vue.js 来设计一个管理应用程序,并且我正在尝试构建尽可能模块化的 UI 架构。所以我已经设置并包装了Header
, Body
,Sidebar
和Main
单个文件组件,如下所示。
树
App
- Header
- dynamic content
- Body
- Sidebar
- dynamic content
- Main
- dynamic content
图形
┌──────────────────────────────────────────────────────────┐
│ HEADER SOME DYNAMIC CONTENT │
├──────────────────────────────────────────────────────────┤
│ BODY │
│┌──────────┬─────────────────────────────────────────────┐│
││ SIDEBAR │ MAIN ││
││ │ ││
││ SOME │ SOME DYNAMIC CONTENT ││
││ DYNAMIC │ ││
││ CONTENT │ ││
││ │ ││
│└──────────┴─────────────────────────────────────────────┘│
└──────────────────────────────────────────────────────────┘
现在,这些组件中的每一个都有自己的路由器视图,可以根据当前路由显示动态内容。当我在 vue.js 中只有一个可用的路由器视图时,如何实现这一点?是不是可以通过路由视图组件完全解决这些动态组件而不覆盖类似于php Smarty的原始内容,像这样?
关于我们.vue
<template>
<div>
<header>
<header-content>
About us - Header
</header-content>
</header>
<sidebar>
<sidebar-content>
About us - Sidebar
</sidebar-content>
</sidebar>
<main>
<main-content>
About us - Main
</main-content>
</main>
</div>
</template>
<script>
/* ... */
</script>
但由于我猜是嵌套架构,这是不可能的?我找不到合适的方法来使用嵌套组件进入 vue.js 中的这种路由架构。
解决方案
我已经尝试实现与此类似的东西,其中我有一个单独的组件文件夹,在该文件夹下我有视图文件夹。所以我在我的 index.js 中导入了组件。看看下面的例子,我已经导入了管理组件,我在其中添加了它的子组件。同样,您可以将多个子组件添加到不同的组件,这些子组件将仅加载到其父组件中。
{
path: '/admin',
component: AdminComponent,
children: [
{
path: 'admin_dashboard',
alias: '',
component: AdminDashboard,
name: 'admin_dashboard'
},
推荐阅读
- c - 将一个元素重新添加到动态数组列表中(从内存中删除后)
- reporting-services - 通过 URL 将参数传递给 SSRS
- sql - 使用多个 PIVOT 列、不同名称和聚合的查询
- php - 使用 WP Jobmanager 自定义端点 Woocommerce
- javascript - 如何通过查询字典数组中的键/值来查找 Sequelize 中的实例
- jhipster - JHipster:从实体中删除字段:Liquibase 不会从数据库中删除字段:验证失败错误
- android - 为什么我需要在 Android 中下载整个“数据库”目录才能查看 SQLite 数据库的内容?
- python - 使用 gdalwarp 重新采样会导致 IndentationError: unexpected indent
- .net - 如何检测对异常的依赖
- python-3.x - 如何在程序执行期间消除 argparse 中的错误