zoukankan      html  css  js  c++  java
  • 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 结果

        

  • 相关阅读:
    transitiondrawable ImageVIew切换动画
    Android硬件加速
    android PorterDuffXfermode ,PorterDuff.Mode 使用 以及Porter-Duff规则详解
    listview 打对号效果实现
    nrf52832 连接参数更新过程
    Makefile 学习记录一
    W25Q128BV W25Q128FV W25Q128JV 什么区别?
    lwip Packet buffers (PBUF) API 操作 集合
    NRF SDK 中 , C语言 的 一些骚操作 ,记录下
    lwip lwiperf 方法进行性能测试 4.5MB/S
  • 原文地址:https://www.cnblogs.com/zhangjunkang/p/10179466.html
Copyright © 2011-2022 走看看