Vue学习-06:vue-router 路由、js操纵路由、路由参数
2019-03-06 19:59
891 查看
前提:直接引入 vue.js 和 vue-router.js 的情况下
1、vue-router
[code] window.onload = function() { //第一步:创建路由 let r1 = new VueRouter({ //VueRouter 是个对象 routes: [{ //routes 是数组,来存放路由 path: '/user', //path:路径 component: { //component: template: '<div>用户列表</div>' //template:里有且只有一个顶级元素 } }, { path: '/article', component: { template: '<div>文章列表</div>' } }] }) let vm = new Vue({ el: '#div1', router: r1 //第二步:调用路由 }) }
[code]<div id="div1"> <router-link to="/user">用户</router-link> //相当于<a> <router-link to="/article">文章</router-link> //to 相当于 href <router-view></router-view> //渲染容器 </div>
知识点:
路由就像一个锚点,根据锚点信息,确定要显示哪个组件。(类似于选项卡)
<router-view> 渲染容器,用于盛放 component 下 template 中的内容;
前端路由一般要求页面不跳转 #/;
<router-link> 当有多个该标签是,vue 会提供 .router-link-active (当前路由)
2、用 js 操作 router
[code] window.onload = function() { let r1 = new VueRouter({ routes: [{ path: '/user', component: { template: '<div>用户列表</div>' } }, { path: '/article', component: { template: '<div>文章列表</div>' } }, { path: '/comment', component: { template: '<div>留言列表</div>' } }] }) let vm = new Vue({ el: '#div1', router: r1, methods: { fn_forward() { this.$router.go(1) // +1 前进 }, fn_back() { this.$router.go(-1) // this.$router 相当于 r1 }, fn_push() { this.$router.push('/article')//push 方法,相当于<router-link>里的to } } }) }
[code] <div id="div1"> <input type="button" value="后退" @click="fn_back"> <input type="button" value="前进" @click='fn_forward'> <input type="button" value="到文章" @click='fn_push'> <br> <router-link to="/comment">留言</router-link> <router-link to="/user">用户</router-link> <router-link to="/article">文章</router-link> <router-view>文章</router-view> </div>
3、带参数的路由
[code] window.onload = function() { let r1 = new VueRouter({ routes: [{ path: '/user/:id', //注意参数要带 : component: { template: '<div>当前用户的ID:{{$route.params.id}}</div>' } //注意,$route.params 容易写错 }] }) let vm = new Vue({ el: '#div1', router: r1 }) }
[code] <div id="div1"> <router-link to="/user/1234">用户1</router-link> <router-link to="/user/5678">用户2</router-link> <router-link to="/user/9101">用户3</router-link> <router-view></router-view> </div>
知识点:
注意 routes 里 path 和 component 里 template 的参数写法($route.params);
相关文章推荐
- vue.js路由配置vue-router的基础学习 - 概念篇
- vue.js用vue-router路由传参时页面刷新后参数消失的问题
- BackboneJs入门学习[09]—Router路由实践
- Vue-router学习笔记——遇到的坑(一)history模式刷新/设置嵌套路由显示404/cannot find(webpack配置)
- Vue.js路由vue-router使用方法详解
- vue学习五 router-link传参以及参数的使用
- vue.js vue-router如何实现无效路由(404)的友好提示
- vue.js中路由传递参数
- vue.js中的路由vue-router2.0使用
- 浅谈vue-router2路由参数注意的问题
- vue-router学习二(动态路由)
- vue-router在同一个路由下切换,取不到变化的路由参数
- Vue.js学习之vue-router vuex axios webpack
- Vue.js路由组件vue-router使用方法详解
- vue.js学习06之vue-resource
- vue-router路由参数刷新消失的问题解决方法
- 详解Vue.js搭建路由报错 router.map is not a function
- Vue学习第二天 vue-router: 路由传参
- vue通过 vue.mixin(混合)实现 任意页面记录滚动条位置(路由router.query参数一致) 并跳转到上次的位置
- Vue.js搭建路由报错 router.map is not a function