Vue Router 学习 router-view基础 以及 routes配置

本文介绍了Vue Router的基础用法,包括router-view的使用实现页面刷新,router-link进行路径跳转,以及如何通过名称进行跳转。同时展示了如何设置路由的嵌套和过渡动画,并通过routes.js配置文件详细解析了路由配置,包括重定向、子路由、动态参数等。此外,还提及了组件内如何接收路径参数。
摘要由CSDN通过智能技术生成
App.vue:

```

<!-- 
  router-view 是 vue-router 库的指定刷新区域,调用 vue-router 中定义的路径只会在 router-view 身上进行刷新,其他区域不会变动。
  所以也就可以根据需求不同去做成全屏刷新还是局部区域刷新。
-->

<!-- 使用组件 -->
<!-- <todo></todo> -->

<!-- router-view 展示 vue-router 路由内容 -->
<!-- <router-view /> -->

<!-- router-view 过渡动画 -->
<transition name="fade">
  <router-view />
</transition>

<!-- router-link 跳转 -->
<!-- 路径跳转 -->
<router-link to="/todo">跳转Todo</router-link><br />
<router-link to="/login">跳转Login</router-link><br />
<!-- 名称跳转 -->
<router-link :to="{name: 'todo'}">跳转Todo Name</router-link><br />
<!-- 路径添加 exact 解释:https://www.jianshu.com/p/860c77649ba9 -->
<router-link to="/login/exact">跳转Login Exact</router-link>

<!-- router-view 嵌套使用  -->
<!-- <div style="background-color: green; width: 500px; height: 500px;">
  <div style="background-color: red; width: 100px; height: 100px;">
    <router-view style="overflow: hidden;" />
  </div>
</div> -->

```

routes.js:

``` import Todo from '../views/todo.vue' import Login from '../views/login.vue'

export default [ { // 主路径 path: '/',

// 重定向路径(相当于调用 '/' 主路径 会自动调用到重定向路径)
redirect: '/login'

}, { // 路径 path: '/todo',

// 指定组件
component: Todo,

// 名称(名字可以随便起)
// 可以不通过路径跳转,通过名称去进行跳转
name: 'todo',

// 页面数据信息
meta: { 
  title: '这是 Todo 页面',
  description: '这是 Todo 页面描述'
},

// 当前路径下的子路径,子路径的使用方法是这样的:
// 既然子路径是在 /todo 这个路径下的 Todo 组件里面添加的,那么也就只能在这个组件里面添加一个 <router-view />
// 在 Todo 这个组件里面添加了 <router-view /> 之后,在去访问 http://localhost:8080/todo/test 的时候
// Todo 里面的 <router-view /> 这个位置就会刷新展示 Login 组件
children: [
  {
    path: 'test',
    component: Login
  }
]

}, { // 路径传参 path: '/todo/:id',

// 指定组件
component: Todo,

// props 设置为 true
// 则在组件 Todo 中直接使用 props: ['id'], 则可以直接接收路径中传入的参数 id,就不需要通过 this.$route 这种方式去获取传参了
props: true,

// props 也可以自己自定义传入的参数
// props: {
//   id: '123'
// },

// props 也可以通过根据传入的 query 进行传递也可以写成这样
// 例如链接: http://localhost:8080/todo/123?a=dzm&b=xyq
// props: (route) => ({
//   id: route.query.a // dzm
// }),

// 页面数据信息
meta: { 
  title: '这是 Todo 页面',
  description: '这是 Todo 页面描述'
}

}, { path: '/login', component: Login, name: 'login' }, { // 路径添加 exact 解释:https://www.jianshu.com/p/860c77649ba9 path: '/login/exact',

// 指定组件
component: Login

} ] ```

todo.vue:

```

这里是TodoTodoTodoTodoTodoTodo

```

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

卡尔特斯

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

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

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

打赏作者

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

抵扣说明:

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

余额充值