vue路由的使用

路由中props的使用

作用:让路由组件更方便的收到参数

{
	name:'xiangqing',
	path:'detail/:id',
	component:Detail,

	//第一种写法:props值为对象,该对象中所有的key-value的组合最终都会通过props传给Detail组件
	// props:{a:900}

	//第二种写法:props值为布尔值,布尔值为true,则把路由收到的所有params参数通过props传给Detail组件
	// props:true
	
	//第三种写法:props值为函数,该函数返回的对象中每一组key-value都会通过props传给Detail组件
	props($route){
		return {
			id:$route.query.id,
			title:$route.query.title
		}
	}
}
<router-link>的replace属性
  1. 作用:控制路由跳转时操作浏览器历史记录的模式
  2. 浏览器的历史记录有两种写入方式:分别为pushreplacepush是追加历史记录,replace是替换当前记录。路由跳转时候默认为push
  3. 如何开启replace模式:<router-link replace .......>News</router-link>
缓存路由组件
  1. 作用:让不展示的路由组件保持挂载,不被销毁。

  2. 具体编码:

//组件名
<keep-alive include="News"> 
    <router-view></router-view>
</keep-alive>
两个新的生命周期钩子
  1. 作用:路由组件所独有的两个钩子,用于捕获路由组件的激活状态。
  2. 具体名字:
    1. activated路由组件被激活时触发。
    2. deactivated路由组件失活时触发。
路由守卫
  1. 作用:对路由进行权限控制

  2. 分类:全局守卫、独享守卫、组件内守卫

  3. 全局守卫:

//全局前置守卫:初始化时执行、每次路由切换前执行
router.beforeEach((to,from,next)=>{
	console.log('beforeEach',to,from)
	if(to.meta.isAuth){ //判断当前路由是否需要进行权限控制
		if(localStorage.getItem('school') === 'atguigu'){ //权限控制的具体规则
			next() //放行
		}else{
			alert('暂无权限查看')
			// next({name:'guanyu'})
		}
	}else{
		next() //放行
	}
})

//全局后置守卫:初始化时执行、每次路由切换后执行
router.afterEach((to,from)=>{
	console.log('afterEach',to,from)
	if(to.meta.title){ 
		document.title = to.meta.title //修改网页的title
	}else{
		document.title = 'vue_test'
	}
})

  1. 独享守卫:
beforeEnter(to,from,next){
	console.log('beforeEnter',to,from)
	if(to.meta.isAuth){ //判断当前路由是否需要进行权限控制
		if(localStorage.getItem('school') === 'atguigu'){
			next()
		}else{
			alert('暂无权限查看')
			// next({name:'guanyu'})
		}
	}else{
		next()
	}
}
  1. 组件内守卫:
//进入守卫:通过路由规则,进入该组件时被调用
beforeRouteEnter (to, from, next) {
},
//离开守卫:通过路由规则,离开该组件时被调用
beforeRouteLeave (to, from, next) {
}
路由器的两种工作模式
  1. 对于一个url来说,什么是hash值?—— #及其后面的内容就是hash值。
  2. hash值不会包含在 HTTP 请求中,即:hash值不会带给服务器。
  3. hash模式:
    1. 地址中永远带着#号,不美观 。
    2. 若以后将地址通过第三方手机app分享,若app校验严格,则地址会被标记为不合法。
    3. 兼容性较好。
  4. history模式:
    1. 地址干净,美观 。
    2. 兼容性和hash模式相比略差。
    3. 应用部署上线时需要后端人员支持,解决刷新页面服务端404的问题。
### 配置和使用 Vue 路由 Vue RouterVue.js 的官方路由管理器,它允许开发者通过定义不同的路径来导航到应用的不同部分。以下是关于如何在 Vue 应用程序中配置和使用路由的详细介绍。 #### 安装 Vue Router 要开始使用 Vue Router,首先需要安装该库。可以通过 npm 或 yarn 来完成这一操作[^1]: ```bash npm install vue-router@next --save ``` 或者如果使用的是 Yarn,则可以运行以下命令: ```bash yarn add vue-router@next ``` #### 创建路由实例并设置路由映射 创建一个 `router/index.js` 文件,在其中初始化路由器,并定义组件之间的映射关系。下面是一个简单的例子[^2]: ```javascript import { createRouter, createWebHistory } from 'vue-router'; import Home from '../views/Home.vue'; // 假设有一个名为Home的视图组件 import About from '../views/About.vue'; const routes = [ { path: '/', name: 'Home', component: Home, }, { path: '/about', name: 'About', component: About, } ]; const router = createRouter({ history: createWebHistory(process.env.BASE_URL), routes, }); export default router; ``` 上述代码片段展示了如何导入必要的模块以及自定义路径与组件的关系。 #### 将路由集成至主应用程序文件 接着,在项目的入口文件(通常是 `main.js`),引入刚刚创建好的路由对象并将它传递给 Vue 实例[^3]: ```javascript import { createApp } from 'vue'; import App from './App.vue'; import router from './router'; createApp(App).use(router).mount('#app'); ``` 这样就完成了基本的路由配置工作流程。 #### 动态路由匹配与嵌套路由支持 除了基础功能外,Vue Router 还提供了动态参数解析、重定向等功能。例如,当访问 `/user/:id` 形式的 URL 时,我们可以捕获 id 参数用于加载特定用户的资料页面[^4]。 另外还可以实现更复杂的场景比如子级路由结构等特性,这使得构建大型单页应用成为可能。 ```javascript { path: '/user/:id', component: User, children:[ {path:'profile',component:UserProfile}, {path:'posts',component:UserPosts} ] } ``` 以上就是有关于 Vue 中配置和使用路由的一个概括说明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

咖啡壶子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值