11_16_第六阶段:大前端进阶||07-Vue详解||P18:参数传递及重定向【使用props 减少耦合[推荐]】【观看狂神随笔】

1.参数传递

这里演示如果请求带有参数该怎么传递

  • 用的还是上述例子的代码 修改一些代码 这里不放重复的代码了
第一种取值方式

1、 修改路由配置, 主要是router下的index.js中的 path 属性中增加了 :id 这样的占位符

  • name: ‘UserProfile’
{
    path: '/user/profile/:id',
    name: 'UserProfile',
    component: UserProfile
},

2、传递参数
 此时我们在Main.vue中的route-link位置处 to 改为了 :to(如果要传参数的话就需要用v-bind:来绑定),是为了将这一属性当成对象使用,注意 router-link 中的 name 属性名称 一定要和 路由中的 name 属性名称 匹配,因为这样 Vue 才能找到对应的路由路径;

  • 前面属性没写name是因为只有一个属性
<el-menu-item index="1-1">
                <!--name是组件的名字 params是传的参数 如果要传参数的话就需要用v:bind:来绑定-->
                <router-link :to="{name: 'UserProfile', params: {id: 1}}">个人信息</router-link>
              </el-menu-item>

3、在要展示的组件Profile.vue中接收参数 使用 {{$route.params.id}}来接收
Profile.vue 部分代码

  • 所有元素必须在根节点下<div></div>
<template>
  <div>
  <!--  所有的元素必须在根节点下-->
  <h1>个人信息</h1>
  {{$route.params.id}}
  </div>
</template>
第二种取值方式 使用props 减少耦合【推荐】

1、修改路由配置 , 主要在router下的index.js中的路由属性中增加了 props: true 属性

{
          path: '/user/profile/:id',
          name: 'UserProfile',
          component: UserProfile,
          props: true
        },

在这里插入图片描述
2、传递参数和之前一样 在Main.vue中修改route-link地址

<!--name是组件的名字 params是传的参数 如果要传参数的话就需要用v:bind:来绑定-->
<router-link :to="{name:'UserProfile',params:{id:1}}">个人信息</router-link>

3、在Profile.vue接收参数为目标组件增加 props 属性
Profile.vue

<template>
  <div>
  <!--  所有的元素必须在根节点下-->
    <h1>个人信息</h1>
    {{id}}
  </div>
</template>

<script>
export default {
  props: ['id'],
  name: "UserProfile"
}
</script>

<style scoped>

</style>

在这里插入图片描述

2.组件重定向

  • 重定向:从一个页面跳转到另一个页面
  • url不变的跳转叫做转发

1、重定向的意思大家都明白,但 Vue 中的重定向是作用在路径不同但组件相同的情况下,比如:在router下面index.js的配置

  • 说明:这里定义了两个路径,一个是 /main ,一个是 /goHome,其中 /goHome 重定向到了 /main 路径,由此可以看出重定向不需要定义组件;
{
  path: '/main',
  name: 'Main',
  component: Main
},
{
  path: '/goHome',
  redirect: '/main'
}

2、使用的话,只需要在Main.vue设置对应路径即可;
在这里插入图片描述
3、结果:
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

狂野小白兔

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

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

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

打赏作者

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

抵扣说明:

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

余额充值