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 结果

        

  • 相关阅读:
    升级centos6.5系统的gcc为4.8.5的简易步骤
    赛车比赛(洛谷U4566)
    月考(cogs 1176)
    xth的旅行(codevs 1450)
    魔法禁书目录2:回家(codevs 3024)
    交换
    牛的旅行(洛谷 1522)
    长途旅行
    序列问题
    正确答案
  • 原文地址:https://www.cnblogs.com/zhangjunkang/p/10179466.html
Copyright © 2011-2022 走看看