VUE Router路由

使用Vue Router可以在不同的组件间切换,根据不同的url地址,路由跳转到不同的组件

提供了俩个路由组件

<router-link>:用来定义导航,默认会创建<a>标签,根据指定的url路径跳转到组件
<router-view> :用来渲染url路径对应的组件,将组件显示到当前定义的位置

 写一个路由:

index.js

import { createRouter, createWebHistory } from 'vue-router'
import Home from '../views/Home.vue'

//配置路由,简单来说就是通过url地址找到组件,一个路径对应一个组件
const routes = [
	//项目打开默认访问的组件
  {
    path: '/',  //url路径,称为根路径
    name: 'Home',  //路由名称,用来唯一标示当前路由,称为命名路由
    component: Home  //对应的组件
  },
  //其他组件都使用懒加载
  {
    path: '/about',
    name: 'About',
    
	//路由懒加载lazy,提高性能
    component: () => import( '../views/About.vue')
  },
  {
	path:'/user',
	name:'User',
	component: () => import('../views/User.vue')
  }
]
//创建路由实例
const router = createRouter({
  history: createWebHistory(process.env.BASE_URL), //has模式
  routes  //路由配置项,上面配置的routes
})

//默认对外提供路由,导出路由
export default router

 main.js

import { createApp } from 'vue'
import App from './App.vue'
//引入路由
import router from './router'

// createApp(App).use(router).mount('#app')
const app=createApp(App)
app.use(router)
app.mount('#app')

User.vue

<template>
	<div>
		<h1>用户</h1>
	</div>
</template>

<script>
	export default{
		
	}
</script>

<style>
</style>

App.vue

<template>
	
  <div id="nav">
	<!--使用<router-link>组件定义导航,to属性:指定链接,即url路径 -->
	
    <router-link to="/">Home</router-link> |
    <router-link to="/about">About</router-link> |
	<router-link to="/user">User</router-link>
  </div>
  <!-- 
   使用<router-view>组件来渲染url路径对应的组件,将组建显示在当前位置
   -->
  <router-view/>
</template>

<style lang="less">
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
}

#nav {
  padding: 30px;

  a {
    font-weight: bold;
    color: #2c3e50;

    &.router-link-exact-active {
      color: #42b983;
    }
  }
}
</style>

 路由的嵌套:

当应用由多层嵌套的组件构成时,需要使用嵌套路由

url路径的定义:
根路径就是/,默认访问项目时显示的就是根路径对应的组件

嵌套的路由的路径
子级路由可以使用相对路径或绝对路径
通配路径
可以使用/:pathMatch(.*)/*来设置当url路径不存在时显示的组件

 

User.vue

<template>
	<div>
		<h1>用户</h1>
		<p>
			<router-link to="/user/login">用户登录</router-link> |
			<router-link to="/user/register">用户注册</router-link>
		</p>
	</div>
	<router-view></router-view>
</template>

<script>
	export default{
		
	}
</script>

<style lang="less">
</style>

index.js

import { createRouter, createWebHistory } from 'vue-router'
import Home from '../views/Home.vue'

//配置路由,简单来说就是通过url地址找到组件,一个路径对应一个组件
const routes = [
	//项目打开默认访问的组件
  {
    path: '/',  //url路径,称为根路径
    name: 'Home',  //路由名称,用来唯一标示当前路由,称为命名路由
    component: Home  //对应的组件
  },
  //其他组件都使用懒加载
  {
    path: '/about',
    name: 'About',
    
	//路由懒加载lazy,提高性能
    component: () => import( '../views/About.vue')
  },
  {
	path:'/user',
	name:'User',
	component: () => import('../views/User.vue'),
	children:[
		{
			path:'login',//相对路径(不以/开头),相对于上一层的位置
			name:'login',
			component:() => import('../views/login.vue')
		},
		{
			path:'/user/register', //绝对路径
			name:'register',
			component:() => import('../views/register.vue')
		}
	]
  },
  //匹配404页面的路由
  {
	path:'/:pathMatch(.*)/*',
	redirect:'/'  //如果匹配的路由不存在,都跳转到根路径
  }
]
//创建路由实例
const router = createRouter({
  history: createWebHistory(process.env.BASE_URL), //has模式
  routes  //路由配置项,上面配置的routes
})

//默认对外提供路由,导出路由
export default router

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值