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项目如何引入bootstrap、elementUI、echarts
Nov 26 Vue.js
vuex的数据渲染与修改浅析
Nov 26 Vue.js
Vue在H5 项目中使用融云进行实时个人单聊通讯
Dec 14 Vue.js
vue中activated的用法
Jan 03 Vue.js
vue+elementui通用弹窗的实现(新增+编辑)
Jan 07 Vue.js
Vue实现图书管理案例
Jan 20 Vue.js
vue首次渲染全过程
Apr 21 Vue.js
Vue详细的入门笔记
May 10 Vue.js
解决Vue+SpringBoot+Shiro跨域问题
Jun 09 Vue.js
vue+element ui实现锚点定位
Jun 29 Vue.js
Vue图片裁剪组件实例代码
Jul 02 Vue.js
Vue OpenLayer测距功能的实现
Apr 20 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的开发框架的现状和展望
2007/03/16 PHP
php添加文章时生成静态HTML文章的实现代码
2013/02/17 PHP
在PHP中运行Linux命令并启动SSH服务的例子
2014/06/12 PHP
功能强大的php分页函数
2016/07/20 PHP
php array_multisort 对数组进行排序详解及实例代码
2016/10/27 PHP
浅析PHP类的反射来实现依赖注入过程
2018/02/06 PHP
laravel ORM关联关系中的 with和whereHas用法
2019/10/16 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
安装PHP扩展时解压官方 tgz 文件后没有configure文件无法进行配置编译的问题
2020/08/26 PHP
onpropertypchange
2006/07/01 Javascript
var与Javascript变量隐式声明
2009/09/17 Javascript
js判断一个元素是否为另一个元素的子元素的代码
2012/03/21 Javascript
javascript获取下拉列表框当中的文本值示例代码
2013/07/31 Javascript
jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表
2015/08/26 Javascript
JS中setTimeout的巧妙用法前端函数节流
2016/03/24 Javascript
详解vue2父组件传递props异步数据到子组件的问题
2017/06/29 Javascript
在React 组件中使用Echarts的示例代码
2017/11/08 Javascript
vue 中使用print.js导出pdf操作
2020/11/13 Javascript
Python合并字典键值并去除重复元素的实例
2016/12/18 Python
Ubuntu下创建虚拟独立的Python环境全过程
2017/02/10 Python
python中通过预先编译正则表达式提高效率
2017/09/25 Python
Python找出最小的K个数实例代码
2018/01/04 Python
python判断文件夹内是否存在指定后缀文件的实例
2019/06/10 Python
Python socket非阻塞模块应用示例
2019/09/12 Python
Python实现非正太分布的异常值检测方式
2019/12/09 Python
python+appium+yaml移动端自动化测试框架实现详解
2020/11/24 Python
如何用Matlab和Python读取Netcdf文件
2021/02/19 Python
大学生党员自我批评
2014/02/14 职场文书
迎新晚会主持词
2014/03/24 职场文书
扬尘污染防治方案
2014/06/15 职场文书
简单租房协议书(范本)
2014/10/13 职场文书
董事长秘书岗位职责
2015/02/13 职场文书
学习焦裕禄观后感
2015/06/09 职场文书
《去年的树》教学反思
2016/02/18 职场文书
低端且暴利的线上线下创业项目分享
2019/09/03 职场文书
win10重装系统后上不了网怎么办 win10重装系统网络故障的解决办法
2022/07/23 数码科技