031_vue编程式导航
生活随笔
收集整理的这篇文章主要介绍了
031_vue编程式导航
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
1. 页面导航的两种方式
1.1. 声明式导航: 通过点击链接实现导航的方式, 叫做声明式导航。例如: 普通网页中的<a></a>链接或vue中的<router-link></router-link>。
1.2. 编程式导航: 通过调用JavaScript形式的API实现导航的方式, 叫做编程式导航。例如: 普通网页中的location.href。
1.3. vue中的编程式导航
1.3.1. this.$router.push('hash地址');
1.3.2. this.$router.go(n);
1.4. router.push()方法的参数规则
// 路径名称 router.push('/user'); // 对象路径 router.push({path: '/user'}); // 命名路由传递参数 router.push({name: '/user_alias', params: {id: 1}}); // 带查询参数, 变成/user?uname=lisi router.push({path: '/user', query: {uname: 'lisi'}});1.5. 代码
<!DOCTYPE html> <html><head><meta charset="utf-8" /><title>编程式导航</title></head><body><div id="app"><router-link to="/user/1">User1</router-link><router-link to="/user/2">User2</router-link><router-link :to="{ name: 'user_alias', params: {id: 3} }">User3</router-link><router-link to="/register">Register</router-link><!-- 路由占位符 --><router-view></router-view></div><script type="text/javascript" src="vue.min.js"></script><script src="vue-router_3.0.2.js"></script><script type="text/javascript">const user = {props: ['id', 'uname', 'age'],template: `<div><h1>User组件 -- 用户id为: {{id}} -- 姓名为: {{uname}} -- 年龄为: {{age}}</h1><button @click="goRegister">跳转到注册页面</button></div>`,methods: {goRegister() {this.$router.push('/register');}},};const register = {template: `<div><h1>Register组件</h1><button @click="goBack">后退</button></div>`,methods: {goBack() {this.$router.go(-1);}},};// 创建路由实例对象const router = new VueRouter({routes: [{ path: '/', redirect: '/user/3' },{ // 命名路由name: 'user_alias',path: '/user/:id', component: user, props: route => ({ uname: 'zs', age: 20, id: route.params.id }) },{ path: '/register', component: register }]});var vm = new Vue({el: "#app",router: router});</script></body> </html>1.6. 效果图
总结
以上是生活随笔为你收集整理的031_vue编程式导航的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 030_vue命名路由
- 下一篇: android下拉刷新动画效果代码_vu