Vue动态路由 Get传值
main.js
import Vue from 'vue'; import App from './App.vue'; import VueRouter from 'vue-router'; Vue.use(VueRouter); //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' } /*默认跳转路由*/ ] //3.实例化VueRouter 注意:名字 const router = new VueRouter({ routes // (缩写)相当于 routes: routes }) //4、挂载路由 new Vue({ el: '#app', router, render: h => h(App) }) //5 <router-view></router-view> 放在 App.vue
app.vue
<template> <div id="app"> <router-link to="/home">首页</router-link> <router-link to="/news">新闻</router-link> <hr> <router-view></router-view> </div> </template> <script> /*1、不同路由传值:动态路由 1、配置动态路由 routes: [ // 动态路径参数 以冒号开头 { path: '/user/:id', component: User } ] 2、在对应的页面 this.$route.params获取动态路由的值 */ export default { data () { return { msg:'你好vue' } } } </script> <style lang="scss"> </style>
home.vue
<template> <!-- 所有的内容要被根节点包含起来 --> <div id="home"> 我是首页组件 <ul> <li v-for="(item,key) in list"> <router-link :to="'/pcontent?id='+key">{{key}}--{{item}}</router-link> </li> </ul> </div> </template> <script> export default{ data(){ return { msg:'我是一个home组件', list:['商品111111','商品222222','商品333333'] } } } </script> <style lang="scss" scoped> </style>
vews.vue
<template> <div id="news"> 我是新闻组件 <ul> <li v-for="(item,key) in list"> <router-link :to="'/content/'+key">{{key}}--{{item}}</router-link> </li> </ul> </div> </template> <script> export default{ data(){ return { msg:'我是一个新闻组件' , list:['111111','222222','333333'] } } } </script> <style lang="scss" scoped> </style>