Vue--参数传递及重定向
Posted Z && Y
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue--参数传递及重定向相关的知识,希望对你有一定的参考价值。
1. Vue--参数传递及重定向
这里演示如果请求带有参数该怎么传递
1.1 第一种取值方式 {{$route.params.key}}
用的还是路由嵌套例子的代码 修改一些代码 这里不放重复的代码了
路由嵌套代码
1.1.1 修改路由配置,
主要是router下的index.js中的 path 属性中增加了 :id 这样的占位符
{
path: '/user/profile/:id',
// name 属性是给路由起名 待会路由跳转 可以直接用name属性
name: 'userProfile',
component: UserProfile,
}
1.1.2 传递参数
注意 router-link 中的 name 属性名称 一定要和 路由中的 name 属性名称 匹配,因为这样 Vue 才能找到对应的路由路径;
Main.vue
<!--name是组件的名字 params是传的参数 如果要传参数的话就需要用v:bind:来绑定-->
<router-link :to="{name:'userProfile',params:{id:'🐟🥩🐟🥩🐟🥩'}}">个人信息</router-link>
1.1.3 接收参数
Profile.vue
<template>
<!-- 所有的元素必须在根节点下-->
<div>
<h1>个人信息</h1>
{{$route.params.id}}
</div>
</template>
<script>
export default {
name: "UserProfile"
}
</script>
<style scoped>
</style>
1.1.4 运行结果
1.2 第二种取值方式 使用props 减少耦合
1.2.1 修改路由配置
主要在router下的index.js中的路由属性中增加了 props: true 属性
{
path: '/user/profile/:id',
// name 属性是给路由起名 待会路由跳转 可以直接用name属性
name: 'userProfile',
component: UserProfile,
props: true
1.2.2 传递参数和之前一样 在Main.vue中修改route-link地址
Main.vue
<!--name是组件的名字 params是传的参数 如果要传参数的话就需要用v:bind:来绑定-->
<router-link :to="{name:'userProfile',params:{id:'I Love To Eat🐟 & 🥩'}}">个人信息</router-link>
1.2.3 在Profile.vue接收参数为目标组件增加 props 属性
Profile.vue
<template>
<!-- 所有的元素必须在根节点下-->
<div>
<h1>个人信息</h1>
{{id}}
</div>
</template>
<script>
export default {
props: ['id'],
name: "UserProfile"
}
</script>
<style scoped>
</style>
1.2.4 测试
1.3 组件重定向
重定向可以看见目标页面的URL,转发只能看见第一次访问的页面URL
Vue 中的重定向是作用在路径不同但组件相同的情况下,比如:
1.3.1 配置路由
// 默认首页
{
path: '/main',
component: Main
},
{
path: '/goHome',
redirect: '/main'
}
说明:这里定义了两个路径,一个是 /main ,一个是 /goHome,其中 /goHome 重定向到了 /main 路径,由此可以看出重定向不需要定义组件;
1.3.2 使用重定向
Main.vue设置对应路径即可
<el-menu-item index="1-3">
<router-link to="/goHome">回到首页</router-link>
</el-menu-item>
1.3.3 运行结果
1.4 重定向补充(默认页面)
网站都有自己的默认首页,重定向就可以做到这一点
// 默认首页
{
path: '/',
redirect: '/main'
}
以上是关于Vue--参数传递及重定向的主要内容,如果未能解决你的问题,请参考以下文章