当前位置: 首页 > 知识库问答 >
问题:

vue路由器中特定路线的独立导航抽屉

柏高洁
2023-03-14

我正在结合Vuex和vue路由器构建Vuetify应用程序。一些视图使用默认的导航抽屉,但其他视图的导航抽屉中有不同的项。这篇文档说我可以通过道具来查看组件。所以我这样实现它:

{
  path: '/courses/:courseId/lessons/:lessonId',
  name: 'Course 1',
  components: {
    default: () => import('@/views/ViewLesson.vue'),
    sidebar: () => import('@/components/CourseNavBar/CourseNavBar.vue')
  },
  props: {
    items: [
      { text: "Link 1", href:"/link1" },
      { text: "Link 2", href:"/link2" }
    ]
  }
}
<template>
  <v-app>
    <v-app-bar
      app
      color="primary"
      dark
    >
    <h1>My Project</h1>
    </v-app-bar>
    <v-navigation-drawer><router-view :items="items" name="sidebar"/></v-navigation-drawer>
    <v-content>
      <router-view />
    </v-content>
  </v-app>
</template>

但显然,

<template>
  <!-- <v-navigation-drawer :value="1"> -->
    <v-list dense>
      <navbar-item v-for="(item, i) in items" :key="i" :item="item" >
        {{ item.text }}
      </navbar-item>
    </v-list>
  <!-- </v-navigation-drawer> -->
</template>

<script>
import NavBarItem from './NavBarItem.vue'
export default {
  props: {
    items: Array
  },
  components: {
    'navbar-item': NavBarItem
  }
}
</script>

但是<代码>

共有2个答案

计光赫
2023-03-14

在您的路由\index.js中,您需要为每个命名视图定义props选项:

{
  path: '/courses/:courseId/lessons/:lessonId',
  name: 'Course 1',
  components: {
    default: () => import('@/views/ViewLesson.vue'),
    sidebar: () => import('@/components/CourseNavBar/CourseNavBar.vue')
  },
  props: {
    default: true,
    sidebar: true,
    items: [
      { text: "Link 1", href: "/link1" },
      { text: "Link 2", href: "/link2" }
    ]
  }
}

根据@Zim的说法,在将href值分配给props items数组时,您使用了“=”而不是“:”。

您可以使用

郑声
2023-03-14

有几个问题。。。

=替换为。。。

 items: [
    { text:"Link 1", href:"/link1" },
    { text:"Link 2", href:"/link2" }
  ]

侧栏组件(不是路由器视图)应该位于导航抽屉的插槽中。。。

<v-navigation-drawer><sidebar :items="items"></sidebar></v-navigation-drawer>

演示:https://codeply.com/p/oNInfpTwvK

 类似资料:
  • 路由管理 路由管理主要是为了实现页面切换。Flutter中,页面称为路由Router,由导航器Navigator控制,导航器维护一个路由栈,路由入栈(push)则打开新页面,路由出栈(pop)则关闭页面。Flutter中的页面切换就是导航器指挥路由入栈出栈的过程,即:Navigator来push/pop页面Route的过程。写写常用场景的demo。 页面跳转 核心方法:Navigator.push

  • 有人能解释一下(如果可能的话,用一些代码或参考)独立路由器和自包含的路由器参与者之间有什么区别吗? 提前谢谢你。 编辑: 与此相比有何不同?: 在性能或能力方面有什么区别吗?

  • 问题内容: 我觉得这是一个简单的用例,但也许我遗漏了一些东西… 我想有 两个单独的视图,它们分别由各自的菜单控制。当我单击一个菜单上的链接时(或为此),我只想更新其中一个视图。此外,只需在中反映两个视图之一。 我尝试 定义一些状态: 现在,从您最喜欢的控制器中按,然后看着它将废话换成。我还想省略此状态下的定义,因为只能在我定义的第一和第三状态之间进行更改。 我在index.html中彼此并排坐着:

  • 我目前有一个react应用程序,我正在工作,路由是错误的。我以前已经像这样设置了react应用程序及其路由,但是当试图路由到“details”组件时,只有url发生了变化,但是组件没有加载。多一双眼睛就能看到我错过了什么。我将路线设置为: < li>index.js: 根“/”路径组件加载,但我无法获取详细信息组件组件在使用history进行路由时呈现.

  • 本文向大家介绍vue路由--网站导航功能详解,包括了vue路由--网站导航功能详解的使用技巧和注意事项,需要的朋友参考一下 1、首先需要按照Vue router支持 npm install vue-router 然后需要在项目中引入: 2、定义router的js文件 3、在main.js中引入router 4、入口页面定义router-view 5、在path指向为“/”的页面中,定义页面的布局,