vue路由(路由基本使用,传参,多级路由)

vue-router简介

vue的一个插件库,专门用来实现SPA应用
在这里插入图片描述

路由配置和使用

vue2安装

npm i vue-router@3

vue3安装

npm i vue-router@4

在main.js引入(1,3句)
在这里插入图片描述
和vuex类似,在src创建router/index.js
再建立两个路由组件:
在这里插入图片描述
当然为了区分普通组件和路由组件,也可以把这两个路由组件放到pages文件夹下
在这里插入图片描述
在这里插入图片描述

src/router/index.js配置:

// 该文件专门用于创建整个应用的路由器
import VueRouter from 'vue-router'
//引入组件
import About from '../components/About'
import Home from '../components/Home'
//放到pages需要更换路径为../pages/About

//创建并暴露一个路由器,`注意时routes不是routers`
export default new VueRouter({
	routes:[
		{
			path:'/about',
			component:About
		},
		{
			path:'/home',
			component:Home
		}
	]
})

App.vue中使用方式:
在这里插入图片描述

总览效果:
在这里插入图片描述

App.vue中应用:
1.路由标签
在这里插入图片描述
会自动转化为a标签,如果你不需要a标签(比如需要按钮等)后面会提到怎么使用

<router-link class="list-group-item" active-class="active" to="/about">About</router-link>
<router-link class="list-group-item" active-class="active" to="/home">Home</router-link>

2.展示
在这里插入图片描述

<router-view></router-view>

几个注意点:
在这里插入图片描述

嵌套(多级)路由

如下图,路由里面加路由
在这里插入图片描述
主要改变的地方在配置规则和使用时to需要加上父路径

router/index.js

// 该文件专门用于创建整个应用的路由器
import VueRouter from 'vue-router'
//引入组件
import About from '../pages/About'
import Home from '../pages/Home'
import News from '../pages/News'
import Message from '../pages/Message'

//创建并暴露一个路由器
export default new VueRouter({
	routes:[
		{
			path:'/about',
			component:About
		},
		{
			path:'/home',
			component:Home,
			children:[
				{
					path:'news',
					component:News,
				},
				{
					path:'message',
					component:Message,
				}
			]
		}
	]
})

注意children中的path不需要在前面加上/

pages中新建两个子页面
在这里插入图片描述

使用组件时:
在这里插入图片描述

路由传参

方式1:路由的query参数

传参:
下面是遍历组件的messageList,并将每一次遍历的id,title传入路由子组件。传递的方法有两种,第一种用了模板字符串,不推荐。
在这里插入图片描述

收参:
访问$route.query
在这里插入图片描述

方式2:路由的params参数

params参数比query参数多一个修改配置的步骤:
在这里插入图片描述
有点像请求中的RESTful风格

传参:
这里有个坑:只能用name,不能用path
在这里插入图片描述
另外一个方式,使用模板字符串
在这里插入图片描述

收参:
在这里插入图片描述

props配置

如果params传参的时候传很多个,那么我就需要写很多个插值语法中的一长串或者许多计算属性。和vuex中map解决的问题有点像。props方法可以帮我们简化写法

设置props,一般在孩子路由组件中:
在这里插入图片描述
第一种只能传固定值,一般不使用
第二种使用params,也就是上面的第二种传参
第三种使用query,上面的第一种传参

在这里插入图片描述
接收:
在这里插入图片描述

命名路由

在routes中加入name中
在这里插入图片描述
在router-link中,可以使用名字简化路径,但只能在:to使用,不能在to使用:
在这里插入图片描述

取消路由组件在前进后退

在路由组件使用的时候加上replace即可,这个组件和组件下的子组件都不会被放到记录中
如:
依次点击
A组件->B组件->C组件->D组件
C组件加replace

最后在D组件点击页面返回一次在这里插入图片描述直接到B组件


下一节为编程式路由导航

本节源码

  • 24
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

I Am Rex

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

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

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

打赏作者

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

抵扣说明:

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

余额充值