Vue-router编程式导航的两种实现代码


Posted in Vue.js onMarch 04, 2021

页面导航的两种方式

声明式导航:通过点击链接实现导航的方式,叫做声明式导航
例如:普通网页中的 <a></a> 链接 或 vue 中的 <router-link></router-link>
编程式导航:通过调用JavaScript形式的API实现导航的方式,叫做编程式导航
例如:普通网页中的 location.href

编程式导航基本用法

常用的编程式导航 API 如下:

this.$router.push(‘hash地址')

this.$router.go(n)

const User = {  
 		template: '<div><button @click="goRegister">跳转到注册页面</button></div>',  
  	methods: { 
  	 goRegister: function(){   
    // 用编程的方式控制路由跳转   
    	this.$router.push('/register'); 
  } 
  } 
 }

具体吗实现:

<!DOCTYPE html>
<html lang="en">
 <head>
 <meta charset="UTF-8" />
 <meta name="viewport" content="width=device-width, initial-scale=1.0" />
 <meta http-equiv="X-UA-Compatible" content="ie=edge" />
 <title>Document</title>
 <!-- 导入 vue 文件 -->
 <!-- <script src="./lib/vue_2.5.22.js"></script> -->
 <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
 <!-- <script src="./lib/vue-router_3.0.2.js"></script> -->
 <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
 </head>
 <body>
 <!-- 被 vm 实例所控制的区域 -->
 <div id="app">
  <router-link to="/user/1">User1</router-link>
  <router-link to="/user/2">User2</router-link>
  <router-link :to="{ name: 'user', params: {id: 3} }">User3</router-link>
  <router-link to="/register">Register</router-link>

  <!-- 路由占位符 -->
  <router-view></router-view>
 </div>

 <script>
  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' },
   {
   // 命名路由
   name: 'user',
   path: '/user/:id',
   component: User,
   props: route => ({ uname: 'zs', age: 20, id: route.params.id })
   },
   { path: '/register', component: Register }
  ]
  })

  // 创建 vm 实例对象
  const vm = new Vue({
  // 指定控制的区域
  el: '#app',
  data: {},
  // 挂载路由实例对象
  // router: router
  router
  })
 </script>
 </body>
</html>

router.push() 方法的参数规则

// 字符串(路径名称) 
router.push('/home') 
// 对象 
router.push({ path: '/home' }) 
// 命名的路由(传递参数) 
router.push({ name: '/user', params: { userId: 123 }}) 
// 带查询参数,变成 /register?uname=lisi 
router.push({ path: '/register', query: { uname: 'lisi' }})

到此这篇关于Vue-router编程式导航的实现代码的文章就介绍到这了,更多相关Vue router编程式导航内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Vue.js 相关文章推荐
解决vue elementUI 使用el-select 时 change事件的触发问题
Nov 17 Vue.js
Vue用mixin合并重复代码的实现
Nov 27 Vue.js
vue添加自定义右键菜单的完整实例
Dec 08 Vue.js
vue+openlayers绘制省市边界线
Dec 24 Vue.js
vue实现简易的双向数据绑定
Dec 29 Vue.js
Vue中的nextTick作用和几个简单的使用场景
Jan 25 Vue.js
vscode自定义vue模板的实现
Jan 27 Vue.js
Vue3.0中Ref与Reactive的区别示例详析
Jul 07 Vue.js
详解gantt甘特图可拖拽、编辑(vue、react都可用 highcharts)
Nov 27 Vue.js
vue修饰符.capture和.self的区别
Apr 22 Vue.js
vue elementUI批量上传文件
Apr 26 Vue.js
vue如何在data中引入图片的正确路径
Jun 05 Vue.js
手写Vue2.0 数据劫持的示例
Mar 04 #Vue.js
vue3.0封装轮播图组件的步骤
Mar 04 #Vue.js
vue3.0 项目搭建和使用流程
Mar 04 #Vue.js
vue 数据双向绑定的实现方法
Mar 04 #Vue.js
vue3.0中使用element的完整步骤
Mar 04 #Vue.js
VUE实现吸底按钮
Mar 04 #Vue.js
vue实现可移动的悬浮按钮
Mar 04 #Vue.js
You might like
中英文字符串翻转函数
2008/12/09 PHP
浅谈PHP 闭包特性在实际应用中的问题
2009/10/30 PHP
PHP return语句的另一个作用
2014/07/30 PHP
php基于jquery的ajax技术传递json数据简单实例
2016/04/15 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
2018/02/06 PHP
php 可变函数使用小结
2018/06/12 PHP
新浪中用来显示flash的函数
2007/04/02 Javascript
JavaScipt基本教程之JavaScript语言的基础
2008/01/16 Javascript
Jquery 快速构建可拖曳的购物车DragDrop
2009/11/30 Javascript
使用jQuery简单实现模拟浏览器搜索功能
2014/12/21 Javascript
javascript查询字符串参数的方法
2015/01/28 Javascript
WordPress中鼠标悬停显示和隐藏评论及引用按钮的实现
2016/01/12 Javascript
浅谈vue中.vue文件解析流程
2018/04/24 Javascript
Vue实现PopupWindow组件详解
2018/04/28 Javascript
Babel 入门教程学习笔记
2018/06/13 Javascript
js实现倒计时器自定义时间和暂停
2019/02/25 Javascript
jQuery实现带3D切割效果的轮播图功能示例【附源码下载】
2019/04/04 jQuery
JS函数基本定义与用法示例
2020/01/15 Javascript
python进阶教程之词典、字典、dict
2014/08/29 Python
python编程实现随机生成多个椭圆实例代码
2018/01/03 Python
获取python文件扩展名和文件名方法
2018/02/02 Python
对numpy中二进制格式的数据存储与读取方法详解
2018/11/01 Python
基于Python批量生成指定尺寸缩略图代码实例
2019/11/20 Python
Python类及获取对象属性方法解析
2020/06/15 Python
详解WebSocket跨域问题解决
2018/08/06 HTML / CSS
美国在线医疗分销商:MedEx Supply
2020/02/04 全球购物
如何为DataGridView添加一个定制的Column Type
2014/01/21 面试题
小学英语教学反思案例
2014/02/04 职场文书
经典洗发水广告词
2014/03/13 职场文书
合伙经营协议书
2014/04/18 职场文书
纪委书记群众路线整改措施思想汇报
2014/10/09 职场文书
房屋租赁协议书
2014/10/18 职场文书
2014年依法行政工作总结
2014/11/19 职场文书
平安家庭事迹材料
2014/12/20 职场文书
优秀教研组申报材料
2014/12/26 职场文书
Oracle数据库中通用的函数实例详解
2022/03/25 Oracle