zoukankan      html  css  js  c++  java
  • vue--动态路由和get传值

    动态路由:

    <template>
      <div id="News">
        <v-header></v-header>
        <hr>
        {{title}}
        <br>
        <p v-for="(x,k) in list">
          <!-- <router-link to="/content/123">{{k}}-{{x}}</router-link> -->
          <!-- 因为要绑定我们的动态数据 所以要用 : 然后做拼接 -->
          <router-link :to="'/content/'+k">{{k}}-{{x}}</router-link>
        </p>
      </div>
    </template>
    <script>
    import Header from './Header.vue'; 
    export default {
      name: 'News',
      data () {
        return {
          title:'我是新闻News组件',
          list:['111','222','3330','444']
        }
      },
      methods:{},
      components:{
        'v-header':Header,
      }
    }
    </script>

    点击之后能够跳转到一个详情:可以新建一个详情的组件:

    <template>
        <div id="content">
            {{title}}----{{aid}}        
        </div>
    </template>
    <script>
    export default {
      name: 'Header',
      data () {
        return {
          title:'我是一个详情页面',
          aid:'',
        }
      },
      methods:{
        run(){},
      },
      mounted(){
          // 获取传递过来的动态路由的值
          console.log(this.$route.params);
          console.log(this.$route.params['aid']);
          this.aid = this.$route.params['aid'];
      }
    }
    </script>
    </script>

    此时还需要配置路由:

    // 1、创建组件
    import Header from './components/Header.vue'
    import Home from './components/Home.vue'
    import News from './components/News.vue'
    import Content from './components/Content.vue'
    
    // 2、配置路由
    const routes = [
      { path: '/home', component: Home },
      { path: '/news', component: News },
      { path: '/content', component: Content },
      { path: '/content/:aid', component: Content },
      { path: '*', redirect:'/home'}, // 默认跳转路由
    ]

    get传值:

    <p v-for="(x,k) in list">
      <!-- <router-link to="/content?aid=123">{{k}}-{{x}}</router-link> -->
      <router-link :to="'/content?aid='+k">{{k}}-{{x}}</router-link>
    </p>

    配置路由:

    // 2、配置路由
    const routes = [
      { path: '/home', component: Home },
      { path: '/news', component: News },
      { path: '/content', component: Content },
      { path: '*', redirect:'/home'}, // 默认跳转路由
    ]

    获取参数:

    mounted(){
        // 获取get传递过来的动态路由的值
        console.log(this.$route.query);
        console.log(this.$route.query['aid']);
        this.aid = this.$route.query['aid'];
    }
  • 相关阅读:
    windows下运行命令行mysql,提示mysql不是内部命令,解决办法
    XML和HTML的区别
    BZOJ4695 最假女选手(势能线段树)
    BZOJ5312 冒险(势能线段树)
    洛谷P3959 宝藏(NOIP2017)(状压DP,子集DP)
    区间子集最大/最小异或和问题(线性基,树上差分)
    线性基模板(线性基)
    分数模板(C++模板)
    洛谷P2516 [HAOI2010]最长公共子序列(LCS,最短路)
    组合数学知识要点
  • 原文地址:https://www.cnblogs.com/e0yu/p/9801625.html
Copyright © 2011-2022 走看看