前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >16.动态路由传值和get传值

16.动态路由传值和get传值

作者头像
玩蛇的胖纸
发布2019-10-21 17:44:34
1.6K0
发布2019-10-21 17:44:34
举报

1.动态路由传值 

1.在components目录下新建vContent.vue组件

代码语言:javascript
复制
<template>
    <div>
        <h2>{{msg}}</h2>
        
    </div>
</template>
<script>
export default { 
  data () {
    return {
        msg:'详情组件',
    }
  },
  methods:{
  },
  mounted(){
      console.log(this.$route.params);//获取动态路由传值
  }

}
</script>
<style lang="scss" scoped>
h2{
    color: red;
}
</style>

2.在main.js中

加入:

代码语言:javascript
复制
{path:'/vcontent/:aid',component:vContent}, //动态路由

main.js:

代码语言:javascript
复制
import Vue from 'vue';
import App from './App.vue';

import VueResource from 'vue-resource';
Vue.use(VueResource)


import VueRouter from 'vue-router';
Vue.use(VueRouter)

// 1.创建组件,导入组件
import Home from './components/Home.vue';
import News from './components/News.vue';
import vContent from './components/vContent.vue';
// 2.配置路由
const routes=[
    {path:'/home',component:Home},
    {path:'/news',component:News},

      {path:'/vcontent/:aid',component:vContent}, //动态路由
      
      {path:'*',redirect:'/home'} //默认路由跳转到首页
]
//注意,这里是routes,而不是routers

// 3.实例化VueRouter
const router=new VueRouter({
    routes//(缩写)相当于routers:routers
})

// 4.挂载
new Vue({
  el: '#app',
  router,
  render: h => h(App)
})

// 5.将<router-view></router-view>放在App.vue里面

3.在News.vue中

代码语言:javascript
复制
<template>
    <div>
        <h2>{{msg}}</h2>
        <ul>
            <li v-for="(item,index) in list" :key=index>
                <router-link :to="'/vcontent/'+index">
                    {{index}}---{{item}}
                </router-link> 
            </li>
        </ul>
    </div>
</template>
<script>
export default {
  name: 'news',  
  data () {
    return {
        msg:'新闻组件',
        list:['111','222','333']
    }
  },
  methods:{
    
  },

}
</script>
<style lang="scss" scoped>
h2{
    color: red;
}
</style>
  

动态路由传值:

1.配置动态路由

代码语言:javascript
复制
配置路由
const routes=[
      {path:'/vcontent/:aid',component:vContent}, //动态路由 
]

2.在对应的页面

代码语言:javascript
复制
this.$route.params //获取动态路由传过来的值

2.get传值

1.在components目录下新建Goods.vue组件

代码语言:javascript
复制
<template>
    <div>
        <h2>{{msg}}</h2>
        
    </div>
</template>
<script>
export default {
  name: 'goods',  
  data () {
    return {
        msg:'商品详情',
        
    }
  },
  methods:{
  },
  mounted(){
      console.log(this.$route.query);
  }

}
</script>
<style lang="scss" scoped>
h2{
    color: red;
}
</style>

2.首页组件Home.vue

代码语言:javascript
复制
<template>
    <div>
        <h2>{{msg}}</h2>
        <br>
        <ul>
            <li v-for="(item,index) in list" :key=index>
                <router-link :to="'/goods?aid='+index">
                    {{index}}---{{item}}
                </router-link> 
            </li>
        </ul>
        <br>
    </div>
</template>
<script>

export default {
  name: 'home',  
  data () {
    return {
        msg:'首页组件',
        list:['商品111','商品222','商品333']
    }
  },
  methods:{
    
  },
  components:{
  }
}
</script>
<style lang="scss" scoped>
h2{
    color: red;
}
</style>

3.在main.js中引用配置

代码语言:javascript
复制
import VueResource from 'vue-resource';
Vue.use(VueResource)


import VueRouter from 'vue-router';
Vue.use(VueRouter)

// 1.创建组件,导入组件
import Home from './components/Home.vue';
import News from './components/News.vue';
import vContent from './components/vContent.vue';

import Good from './components/Goods.vue';

// 2.配置路由
const routes=[
    {path:'/home',component:Home},
    {path:'/news',component:News},

      {path:'/vcontent/:aid',component:vContent}, //动态路由

      {path:'*',redirect:'/home'}, //默认路由跳转到首页

      {path:'/goods',component:Good},
]
//注意,这里是routes,而不是routers

// 3.实例化VueRouter
const router=new VueRouter({
    routes//(缩写)相当于routers:routers
})

// 4.挂载
new Vue({
  el: '#app',
  router,
  render: h => h(App)
})

// 5.将<router-view></router-view>放在App.vue里面

注意,别忘了在根组件App.vue中引用

代码语言:javascript
复制
<template>
  <div id="app">
    <h2>{{msg}}</h2>

    <router-view></router-view>

    <router-link to="/home">首页</router-link>
    <router-link to="/news">新闻</router-link>

  </div>
</template>
<script>

export default {
  name: 'app',
  data () {
    return { 
      msg:'根组件'
    }
  },
  methods:{
  },

}
</script>
<style>

</style>
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-10-19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.动态路由传值 
    • 1.在components目录下新建vContent.vue组件
      • 2.在main.js中
        • main.js:
      • 3.在News.vue中
        • 动态路由传值:
          • 1.配置动态路由
          • 2.在对应的页面
      • 2.get传值
        • 1.在components目录下新建Goods.vue组件
          • 2.首页组件Home.vue
            • 3.在main.js中引用配置
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档