路由vue-route的使用示例教程

 更新时间:2022年12月22日 12:03:38   作者:敲代码敲到头发茂密  
这篇文章主要介绍了路由vue-route的使用,本文结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

一、项目初始化

二、路由配置规则

path:配置路由访问的路径
name:给路由起名字(命名路由)
component:访问路由时,渲染的组件

{
	  path: '/',
	  name: 'index',
	  component: () => import('../views/IndexView.vue') 
},

App.vue

vue-route标签作用:路由匹配到的组件将渲染到这里

<template>
  <router-view/>
</template>

router-link标签作用:路由导航(路由跳转的链接)

三、声明式导航和编程式导航

声明式导航

<router-link to="/login"></router-link>
<router-link :to="{path:'/login'}"></router-link>

编程式导航

推荐使用路由的名字进行跳转,不推荐直接写路径

<button @click="$router.push('/login')">登录按钮</button>
<button @click="$router.push({path:'/login'})">登录按钮</button>
<button @click="$router.push({name:'login'})">登录按钮</button>

$router:路由对象
在app.use(router)在注册路由时,会给app设置全局属性$router

<button @click="loginBtn">登录按钮</button>

<script>
	export default{
		methods:{
			loginBtn(){
				this.$router.push('/login')
			}
		}
	}
</script>

通过调用app.use(router),我们可以在任意组件中以this.$router的形式访问它,并且以this.$router的形式访问当前路由

四、路由重定向

当访问http://localhost:8080/#/project这个路由
会跳转到http://localhost:8080/#/login这个路由

{
	  path: '/project',
	  name:'project',
	  // 路由重定向配置
	  redirect:{
		  name:'login',
		  }
},

五、嵌套路由

index.js:路由配置

{
      path: '/home',
      name: 'home',
      component: () => import('../views/HomeView.vue'),
	  // 配置home下面的且套路由
	  children:[
		  {
			  path:'/home/project',
			  name:'project',
			  component:()=>import('../views/ProjectView.vue')
		  },
		  {
			  path:'/home/interface',
			  name:'interface',
			  component:()=>import('../views/InterfaceView.vue')
		  },
		  {
			path:'/home/report',
			name:'report',
			component:()=>import('../views/ReportView.vue')
		  }]
},

HomeView.vue组件

<template>
	<el-menu :default-active="activeIndex" class="el-menu-demo" mode="horizontal" @select="handleSelect">
	  <el-menu-item index="1" @click="$router.push({name:'project'})">项目信息</el-menu-item>
	  <el-menu-item index="2" @click="$router.push({name:'interface'})">接口信息</el-menu-item>
	  <el-menu-item index="3" @click="$router.push({name:'report'})">测试报告</el-menu-item>
	</el-menu>
	<!-- home中嵌套路由的渲染位置(路由出口) -->
	<router-view/>
</template>

<script>
</script>

<style>
</style>

特别注意

把不变的内容写到父路由中,并且父路由中预留路由展示位。将变化的内容写到子路由中

总结

六、路由参数动态匹配

{
		path:'/user/:id',
		name:'user',
		component: () => import('../views/UserView.vue')
},

访问路由:http://localhost:8080/#/user/666

UserView.vue组件

获取路由的路径参数

<template>
	<h1>User页面</h1>
	<!-- 获取路由的路径参数 -->
	<h3>路由中匹配的id:{{$route.params.id}}</h3>

</template>

<script>
</script>

<style>
</style>

获取路由的查询参数

http://localhost:8080/#/user/666?name=kobe

<template>
	<h1>User页面</h1>
	<!-- 获取路由的查询参数 -->
	<h4>查询参数name:{{$route.query.name}}</h4>

</template>

<script>
</script>

<style>
</style>

特别注意

$router$route的区别:
$router:路由管理器对象,一般用于路由跳转
$route:表示当前访问的路由,用来获取当前路由参数的一些信息

七、导航跳转时传递路由参数

<router-link :to="{name:'user',params:{id:888},query:{name:111}}">user页面</router-link>
<button @click="$router.push({name:'user',params:{id:666},query:{name:222}})">user按钮</button>	

八、路由导航守卫

设置路由导航守卫(控制前端的路由访问权限)

router.beforeEach(async (to, from) => {
	/*
	1、判断用户是否登录
		1.1从本地获取用户身份信息(存储在cookie或者localstroge中的token,session)
		window.cookieStore.get('token')
		window.localStorage.getItem('token')
		window.sessionStore.getItem('token')
		1.2验证token是否有效
		*/
	   // const isAuthenticated=true
	   // if (
	   //     // 检查用户是否已登录
	   //     !isAuthenticated &&
	   //     // ❗️ 避免无限重定向
	   //     to.name !== 'Login'
	   //   ) {
	   //     // 将用户重定向到登录页面
	   //     return { name: 'Login' }
	   //   }
	   // })
 })

到此这篇关于路由vue-route的使用的文章就介绍到这了,更多相关路由vue-route使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 如何去除vue项目中的#及其ie9兼容性

    如何去除vue项目中的#及其ie9兼容性

    本篇文章主要介绍了如何去除vue项目中的#及其ie9兼容性,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • vue实现配置全局访问路径头(axios)

    vue实现配置全局访问路径头(axios)

    今天小编就为大家分享一篇vue实现配置全局访问路径头(axios),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • 在vue中实现表单验证码与滑动验证功能的代码详解

    在vue中实现表单验证码与滑动验证功能的代码详解

    在Web应用程序中,表单验证码和滑动验证是常见的安全机制,用于防止恶意攻击和机器人攻击,本文将介绍如何使用Vue和vue-verify-code库来实现表单验证码和滑动验证功能,需要的朋友可以参考下
    2023-06-06
  • 浅析Vue 生命周期

    浅析Vue 生命周期

    这篇文章主要介绍了Vue 生命周期的过程,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-06-06
  • 解析VUE中nextTick是什么

    解析VUE中nextTick是什么

    nextTick是Vue提供的一个全局API,由于Vue的异步更新策略导致我们对数据的修改不会立刻体现,在DOM变化上,此时如果想要立即获取更新后的DOM状态,就需要使用这个方法,这篇文章主要介绍了解析VUE中nextTick,需要的朋友可以参考下
    2022-11-11
  • Vue实现PC端分辨率自适应的示例代码

    Vue实现PC端分辨率自适应的示例代码

    本文主要介绍了Vue实现PC端分辨率自适应的示例代码,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • 详解基于Vue的支持数据双向绑定的select组件

    详解基于Vue的支持数据双向绑定的select组件

    这篇文章主要介绍了详解基于Vue的支持数据双向绑定的select组件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Vue+Element的后台管理框架的整合实践

    Vue+Element的后台管理框架的整合实践

    本文主要介绍了Vue+Element的后台管理框架,在框架上,领导要用AdminLTE这套模板,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • 教你如何开发Vite3插件构建Electron开发环境

    教你如何开发Vite3插件构建Electron开发环境

    这篇文章主要介绍了如何开发Vite3插件构建Electron开发环境,文中给大家提到了如何让 Vite 加载 Electron 的内置模块和 Node.js 的内置模块,需要的朋友可以参考下
    2022-11-11
  • vue结合el-dialog封装自己的confirm二次确认弹窗方式

    vue结合el-dialog封装自己的confirm二次确认弹窗方式

    这篇文章主要介绍了vue结合el-dialog封装自己的confirm二次确认弹窗方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08

最新评论