1.安装vue路由vue
npm install vue-router
2.在src中新建router/index.js,引入vue路由vue-router
import Vue from 'vue' import VueRouter from 'vue-router'//引入vue-router Vue.use(VueRouter)
3.引入组件,并建立vue路由
*在这里,可使用@进行引入,@至关于src目录npm
import Home from "../components/Home"; import header from "../components/Header"; import List from "@/components/List";//@至关于src目录 import footer from "../components/footer"; const routes=[ {path:"/",component:Home},//默认页 {path:"/header",component:header}, {path:"/List",component:List}, {path:"/footer",component:footer}, ] export default new VueRouter({ routes: routes, mode:"history" //去掉地址栏的#号 })
4.在main.js中引入router/index.jsapp
import router from "@/router/index"; new Vue({ el: '#app', router:router, components: { App }, template: '<App/>' })
5.路由跳转this
<router-link to="/">首页</router-link> <router-view></router-view>
方法跳转,在methods中定义一个方法,经过事件执行code
routerpush(){ this.$router.push({ path: '/List' })//路由跳转 // this.$router.go(1);//在 history 记录中向前或者后退多少步 // this.$router.replace({ path: '/List' })//路由跳转,但不会向history中添加记录 }
1.params传参
路由配置component
{path:"/List", name:"分类", components:List },
父组件中:经过路由属性中的name来肯定匹配的路由,经过params来传递参数。router
this.$router.push({ name:"分类",params:{id:33} })
子组件中经过this.$route.params.id获取参数
2.query传参
路由配置事件
{path:"/List", name:"分类", components:List },
父组件中:经过路由属性中的name来肯定匹配的路由,经过query来传递参数。路由
this.$router.push({ name:"分类",query:{id:33} })
子组件中经过this.$route.query.id获取参数
*区别:query是把参数放在地址栏上,刷新不会消失,params不会把参数放在地址上,刷新后消失