Vue Router总结

VueRouter是Vue.js的官方路由管理器,用于单页应用的视图导航和组织。文章介绍了VueRouter的安装、使用,包括创建VueRouter实例、路由配置、路由导航、嵌套路由以及如何进行路由传参。此外,还讨论了路由守卫和路由懒加载的概念,以优化应用性能。
摘要由CSDN通过智能技术生成

1、定义:Vue Router 是 Vue.js 官方提供的路由管理器,用于在单页应用程序中实现视图的导航和组织。

2.安装和使用:使用 Vue Router 首先需要安装它。可以通过 npm 或 yarn 安装。安装完毕后,需要将其引入到 Vue.js 应用程序中。在 Vue.js 中使用 Vue Router 需要创建一个 VueRouter 实例,并将其挂载到 Vue 实例上。即创建一个index.js文件用于创建路由器

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

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

然后在main.js中引入Vue-router,基本创建就zuow

//引入Vue
import Vue from 'vue'
//引入App
import App from './App.vue'
//引入VueRouter
import VueRouter from 'vue-router'
//引入路由器
import router from './router'

//关闭Vue的生产提示
Vue.config.productionTip = false
//应用插件
Vue.use(VueRouter)

//创建vm
new Vue({
	el:'#app',
	render: h => h(App),
	router:router
})

3.路由配置:路由配置指定了 URL 和组件之间的映射关系。Vue Router 提供了两种路由配置方式:基于组件的路由和基于配置的路由。基于组件的路由是指每个路由映射到一个组件,而基于配置的路由是指将路由映射到一个配置对象。在配置路由时需要指定路径、组件、以及其他一些选项。

4.路由导航:路由导航是指用户从一个路由跳转到另一个路由的过程。Vue Router 提供了一些导航navigation guards),用于控制导航的流程。导航守卫分为全局守卫和路由守卫。全局守卫应用于所有路由,而路由守卫只应用于指定的路由。在route中写对应路由的信息,嵌套路由只需要在父路由中直接用children创建子路由

// 该文件专门用于创建整个应用的路由器
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'
import Detail from '../pages/Detail'

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

							//props的第一种写法,值为对象,该对象中的所有key-value都会以props的形式传给Detail组件。
							// props:{a:1,b:'hello'}

							//props的第二种写法,值为布尔值,若布尔值为真,就会把该路由组件收到的所有params参数,以props的形式传给Detail组件。
							// props:true

							//props的第三种写法,值为函数
							props($route){
								return {
									id:$route.query.id,
									title:$route.query.title,
									a:1,
									b:'hello'
								}
							}

						}
					]
				}
			]
		}
	]
})

  5、嵌套路由:嵌套路由是指将一个路由嵌套在另一个路由中。嵌套路由通常用于创建页面布局,其中父路由作为页面布局的容器,而子路由则用于呈现具体的内容。在配置嵌套路由时,需要在父路由的组件中使用 router-view 元素来渲染子路由的内容。

<template>
  <div>
    <div class="row">
      <Banner/>
    </div>
    <div class="row">
      <div class="col-xs-2 col-xs-offset-2">
        <div class="list-group">
					<!-- 原始html中我们使用a标签实现页面的跳转 -->
          <!-- <a class="list-group-item active" href="./about.html">About</a> -->
          <!-- <a class="list-group-item" href="./home.html">Home</a> -->

					<!-- Vue中借助router-link标签实现路由的切换 -->
					<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>
        </div>
      </div>
      <div class="col-xs-6">
        <div class="panel">
          <div class="panel-body">
						<!-- 指定组件的呈现位置 -->
            <router-view></router-view>
          </div>
        </div>
      </div>
    </div>
  </div>
</template>

<script>
	import Banner from './components/Banner'
	export default {
		name:'App',
		components:{Banner}
	}
</script>

6.路由传参:路由传参是指将数据传递给路由或从路由中获取数据。路由传参有多种方式,例如在路由配置中定义参数、在路由链接中传递参数、在组件内使用 $route 对象获取参数等。主要就是query参数和params参数。

query传递参数

<!-- 跳转并携带query参数,to的字符串写法 -->
<router-link :to="/home/message/detail?id=666&title=你好">跳转</router-link>
				
<!-- 跳转并携带query参数,to的对象写法 -->
<router-link 
	:to="{
		path:'/home/message/detail',
		query:{
		   id:666,
            title:'你好'
		}
	}"
>跳转</router-link>

query接收参数

$route.query.id
$route.query.title

配置路由,声明接收params参数:

{
	path:'/home',
	component:Home,
	children:[
		{
			path:'news',
			component:News
		},
		{
			component:Message,
			children:[
				{
					name:'xiangqing',
					path:'detail/:id/:title', //使用占位符声明接收params参数
					component:Detail
				}
			]
		}
	]
}

params传递参数:

<!-- 跳转并携带params参数,to的字符串写法 -->
<router-link :to="/home/message/detail/666/你好">跳转</router-link>
				
<!-- 跳转并携带params参数,to的对象写法 -->
<router-link 
	:to="{
		name:'xiangqing',
		params:{
		   id:666,
            title:'你好'
		}
	}"
>跳转</router-link>

params接收参数:

$route.params.id
$route.params.title

7.路由懒加载:路由懒加载是指将路由组件按需加载,而不是在应用程序启动时加载所有组件。这可以提高应用程序的性能和加载速度。在使用路由懒加载时,需要将组件包装在一个异步加载函数中,该函数返回一个 Promise 对

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值