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中动态修改css其中一个属性值操作
Dec 07 Vue.js
vue 使用 sortable 实现 el-table 拖拽排序功能
Dec 26 Vue.js
vue集成一个支持图片缩放拖拽的富文本编辑器
Jan 29 Vue.js
Vue实现圆环进度条的示例
Feb 06 Vue.js
基于vue的video播放器的实现示例
Feb 19 Vue.js
Vue实现todo应用的示例
Feb 20 Vue.js
关于vue中如何监听数组变化
Apr 28 Vue.js
vue-cropper插件实现图片截取上传组件封装
May 27 Vue.js
vue响应式原理与双向数据的深入解析
Jun 04 Vue.js
vue Element-ui表格实现树形结构表格
Jun 07 Vue.js
vue-cli3.0修改打包后的文件名和文件地址,打包后本地运行报错解决
Apr 06 Vue.js
ant design vue的form表单取值方法
Jun 01 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
PHP函数eval()介绍和使用示例
2014/08/20 PHP
JavaScript中的闭包原理分析
2010/03/08 Javascript
ymPrompt的doHandler方法来实现获取子窗口返回值的方法
2010/06/25 Javascript
jquery实现隐藏与显示动画效果/输入框字符动态递减/导航按钮切换
2013/07/01 Javascript
js图片向右一张张滚动效果实例代码
2013/11/23 Javascript
JQuery弹出炫丽对话框的同时让背景变灰色
2014/05/22 Javascript
JavaScript代码实现禁止右键、禁选择、禁粘贴、禁shift、禁ctrl、禁alt
2015/11/17 Javascript
js实现下拉菜单效果
2017/03/01 Javascript
vue中将网页打印成pdf实例代码
2017/06/15 Javascript
vue-cli的eslint相关用法
2017/09/29 Javascript
vue基于mint-ui的城市选择3级联动的示例
2017/10/25 Javascript
解决vue中无法动态修改jqgrid组件 url地址的问题
2018/03/01 Javascript
Vue + better-scroll 实现移动端字母索引导航功能
2018/05/07 Javascript
vue自定义一个v-model的实现代码
2018/06/21 Javascript
JavaScript函数apply()和call()用法与异同分析
2018/08/10 Javascript
Vue动态获取width的方法
2018/08/22 Javascript
Angular4.0动画操作实例详解
2019/05/10 Javascript
vue基本使用--refs获取组件或元素的实例
2019/11/07 Javascript
js实现表单项的全选、反选及删除操作示例
2020/06/05 Javascript
[02:04]2014DOTA2国际邀请赛 BBC小组赛第三天总结
2014/07/12 DOTA
以Python的Pyspider为例剖析搜索引擎的网络爬虫实现方法
2015/03/30 Python
将Django框架和遗留的Web应用集成的方法
2015/07/24 Python
Python使用matplotlib 画矩形的三种方式分析
2019/10/31 Python
毕业生找工作的自我评价
2013/10/18 职场文书
《我为你骄傲》教学反思
2014/02/20 职场文书
人力资源经理的岗位职责范本
2014/02/28 职场文书
销售经理竞聘书
2014/03/31 职场文书
大学生就业求职信
2014/06/12 职场文书
新农村建设标语
2014/06/24 职场文书
房屋出租委托书格式
2014/09/23 职场文书
大学生求职意向书
2015/05/11 职场文书
浅谈redis五大数据结构和使用场景
2021/04/12 Redis
用Python爬虫破解滑动验证码的案例解析
2021/05/06 Python
ConstraintValidator类如何实现自定义注解校验前端传参
2021/06/18 Java/Android
使用springMVC所需要的pom配置
2021/09/15 Java/Android
Android Gradle 插件自定义Plugin实现注意事项
2022/06/16 Java/Android