Vue配置嵌套路由并传递参数

1、在目标文件夹的下,直接输入cmd回车,出现如下dos窗口后,直接输入如下命令,新建一个基于webpack的vue项目, 配置步骤略过,本文的重点在嵌套路由以及参数的传递

vue init webpack test01

在这里插入图片描述
在这里插入图片描述
2、使用编辑器(我用的是idea)打开新建的项目,在src目录下,新建一个views文件夹,在该文件夹下,创建文件About.vue作为父路由,创建AboutUs.vue和AboutCon.vue两个文件作为子路由代码如下,
其中, to=“/about/con/通知2”,通知2是父路由向子路由传递的参数,
About.vue

<template>
  <div>
  <!--    添加子路由的跳转连接-->
    <router-link to="/about/us">关于我们</router-link>
    <router-link to="/about/con/通知2">联系我们</router-link>
 <!--    指定子路由的加载位置-->
    <router-view/>
  </div>
</template>

<script>
export default {
  name: 'About'
}
</script>

<style scoped>

</style>

AboutUs.vue

<template>
  <div>
    <p>关于我们</p>
  </div>
</template>

<script>
export default {
  name: 'AboutUs'A
}
</script>

<style scoped>

</style>

AboutCon.vue,其中{{$route.params.info}}用来来接收父路由about传来的数据,其中info为自定义的参数名

<template>
  <div>
    <p>联系我们{{$route.params.info}}</p>
  </div>
</template>

<script>
export default {
  name: 'AboutCon'
}
</script>

<style scoped>

</style>

3、在路由配置文件(router文件夹下的index.js)中添加子路由,其中path: ‘con/:info’,表示向con的子路由传递参数,自定义参数名为info,注意不能缺少冒号,

import Vue from 'vue'
import Router from 'vue-router'
import HelloWorld from '@/components/HelloWorld'

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/',
      name: 'HelloWorld',
      component: HelloWorld
    },
    {
      path: '/about',
      name: 'About',
      // 异步加载页面,减轻前端负载
      component: () => import('../views/About'),
      // 重定向us的对应页面为about下的子路由首页
      redirect: '/about/us/',
      children: [
        {
          // 注意:二级路由不要/
          path: 'us',
          name: 'us',
          component: () => import('../views/AboutUs')
        },
        {
          path: 'con/:info',
          name: 'con',
          component: () => import('../views/AboutCon')
        }
      ]
    }
  ]
})

4、最后修改一下App.vue页面,代码如下,

<template>
  <div id="app">
<!--    添加子路由的跳转连接-->
    <router-link to="/about">关于</router-link>
<!--    指定子路由的加载位置-->
    <router-view></router-view>
  </div>
</template>

<script>
import HelloWorld from './components/HelloWorld'
export default {
  name: 'App',
  components: {
    HelloWorld
  },
  data () {
    return {
      message: '你好,Vue!'
    }
  }
}
</script>

<style>
#app {
  font-family: 'Avenir', Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

5、终端输入npm run dev/server启动项目即可

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue-Router是Vue.js官方提供的路由管理插件,可以实现单页面应用(SPA)中的路由切换。在Vue-Router中,我们可以通过嵌套路由来管理复杂的页面结构和页面间的跳转逻辑。 路由嵌套是指在一个路由组件中嵌套其他子路由组件,形成一个父子关系的层级结构。通过路由嵌套,我们可以更好地管理页面的细节和逻辑。 在Vue-Router中,我们首先需要定义路由的层级结构。我们可以在路由配置中使用`children`属性来定义嵌套路由。例如: ```js const router = new VueRouter({ routes: [ { path: '/home', component: Home, children: [ { path: 'about', component: About }, { path: 'contact', component: Contact } ] } ] }); ``` 在上面的代码中,我们定义了一个名为`home`的父路由,它有两个子路由`about`和`contact`。当用户访问`/home/about`时,会渲染`About`组件,而当用户访问`/home/contact`时,会渲染`Contact`组件。 在嵌套路由中,父路由的组件中需要使用`<router-view>`标签来显示子路由对应的组件。在上面的例子中,我们需要在`Home`组件中添加`<router-view>`标签。 ```html <template> <div> <h1>Home</h1> <router-view></router-view> </div> </template> ``` 当用户访问`/home`时,会渲染`Home`组件,并且`<router-view>`标签中会显示子路由对应的组件。 通过嵌套路由,我们可以更好地管理页面的结构和逻辑,将页面分成多个模块,并且可以在子路由中访问父路由的数据和方法。我们可以在路由跳转时传递参数,通过使用`$route.params`来获取参数。 总结来说,Vue-Router的路由嵌套可以实现复杂的页面结构和页面间的跳转逻辑,通过定义父子关系的路由层级结构,使用`<router-view>`标签来显示子组件,并且可以通过路由传递参数来实现页面间的数据共享。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Double Handsome

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值