vue之动态路由和get传值

 vue之不同路由传值的两种方法:动态路由和get传值

一、动态路由

1.步骤:

1.1 配置动态路由

const routes = [
  { path:'/home',component:Home},
  { path:'/news',component:News},
   
   // 动态路径参数,以冒号开头;
  { path:'/content/:aid',component:Content},
  { path:'*',redirect:'/home'},
];

1.2 在对应的页面通过 this.$route.params 获取动态路由的值

<script>

  export default {
    data(){
      return {
        msg:"详情"
      }
    },
    mounted() {
      console.log(this.$route.params);
    }
  }
</script>

2.实例演示

2.1 在main.js中配置动态路由

//2.配置路由
const routes = [
  { path:'/home',component:Home},
  { path:'/news',component:News},
  { path:'/content/:aid',component:Content},
  { path:'*',redirect:'/home'},
];

2.2 在news.vue中的链接路由

<template>
  <div>
    新闻组件
    <br>
    <button @click="emitHome()">给home组件广播数据</button>
    <hr />
    <ul>
      <li v-for="(item,key) in list">
        <router-link :to="'/content/'+key">{{ item }}</router-link>
      </li>
    </ul>
  </div>
</template>

2.3 在Content.vue中,通过mounted来测试获取的aid

<script>

  export default {
    data(){
      return {
        msg:"详情"
      }
    },
    mounted() {
      console.log(this.$route.params);
    }
  }
</script>

2.4 结果

 

二、get传值

1.步骤:

1.1 在main.js文件中配置路由

和普通路由配置一样。

const routes = [
  { path:'/pcontent',component:Pcontent},
];

1.2 在home.vue文件中链接路由

<ul>
      <li v-for="(item,key) in list">
     //通过get方式进行传值 <router-link :to="'/pcontent?aid='+key">{{item}}</router-link> </li> </ul>

1.3 在pcontent.vue中的 mounted 通过 this.$route.query来获取传入的对象

mounted() {
      this.msg=this.$route.query.aid
    }

2. 实例演示

2.1 在main文件中配置路由

//1.创建组件
import Home from './components/Home.vue';
import News from './components/News.vue';
import Content from './components/Content.vue';
import Pcontent from './components/Pcontent.vue';


//2.配置路由
const routes = [
  { path:'/home',component:Home},
  { path:'/news',component:News},
  { path:'/content/:aid',component:Content},
  { path:'/pcontent',component:Pcontent},
  { path:'*',redirect:'/home'},
];

2.2 在home.vue文件中链接路由

<template>
  <div>
    首页组件
    <br>
    <button @click="emitNews()">给news组件广播数据</button>
    <hr />
    <ul>
      <li v-for="(item,key) in list">
        <router-link :to="'/pcontent?aid='+key">{{item}}</router-link>
      </li>
    </ul>
  </div>
</template>

2.3 在pcontent.vue组件中获取值

<template>
  <div>
    我是商品{{msg}}
  </div>

</template>

<script>
  export default {
    data(){
      return {
        msg:""
      }
    },
    mounted() {
      this.msg=this.$route.query.aid
    }
  }
</script>

2.4 结果

    

 

转载于:https://www.cnblogs.com/zhangjunkang/p/10179466.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值