使用vue-router切换页面时,获取上一页url以及当前页面url的方法
今天在实现一个小功能的时候,遇到一个问题,使用vue-router获取上一页面的url信息,我尝试了多种方式,发现使用vue-router的canDeactivate钩子实现这个功能最为方便,现在将我的实现代码总结如下:
项目使用的是vue-cli,直接贴代码
export default { mixins: [], vuex: { actions: {fetchCertificates}, }, data() { return {} }, route: { data() { this.$root.showLoading(); return this.fetchCertificates().then((res) => { this.$root.dismissLoading(); if (res.error) return this.$root.toastError(res.error); if(res.data.certificates.length >0){ return res.data; }else{ console.log(this.$route ,"----当前页面的url信息----"); } }); }, canActivate (transition) { console.log(transition,"======上一个页面的url信息======="); transition.next(); } }, }
以上所述是小编给大家介绍的使用vue-router切换页面时,获取上一页url以及当前页面url的方法详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
相关推荐
-
Vue-router 切换组件页面时进入进出动画方法
App.vue 代码 <template> <div id="app"> <Header></Header> // 用transition 把切换组件页面的容器包含 <transition name="slide-fade"> <router-view></router-view> </transition> </div> </template>
-
详解使用vue-router进行页面切换时滚动条位置与滚动监听事件
按照正常的产品逻辑,我们在进行页面切换时滚动条应该是在页面顶部的,可是...在使用vue-router进行页面切换时,发现滚动条所处的位置被自动记录了下来,且在另一个组件内定义的滚动监听事件仍会运行,着实吃了一大惊... 说说我的破解方法: 1.在每个需要用vue-router切换的组件的mounted钩子内将页面的位置自动回滚到页面顶部,解决滚动条位置自动记录问题: 2.在每个组件内定义一条变量scrollWatch默认为true,在绑定滚动监听事件时加个if判断,只有在scrollWatch
-
vue-router实现webApp切换页面动画效果代码
vue-router实现webApp切换效果 演示效果 快速集成 1.复制PageTransittion.vue到项目目录.2.修改router配置. Router.prototype.goBack = function () { this.isBack = true window.history.go(-1) } const router = new Router({ routes: [ { path: '/', name: 'PageTransition', component: PageT
-
vue中使用vue-router切换页面时滚动条自动滚动到顶部的方法
有时候我们需要页面滚动条滚动到某一固定的位置,一般使用Window scrollTo() 方法. 语法就是:scrollTo(xpos,ypos) xpos:必需.要在窗口文档显示区左上角显示的文档的 x 坐标. ypos:必需.要在窗口文档显示区左上角显示的文档的 y 坐标. 例如滚动内容的坐标位置100,500: window.scrollTo(100,500); 好了,这个scrollTop这儿只是简单介绍一下,下面我们介绍下veu-router中的滚动行为. 使用前端路由,当切换到新路由
-
Vue + Vue-router 同名路由切换数据不更新的方法
在默认情况下, 同名路由之间的切换, 由于组件可以服用, 放在ready里获取数据, 是不会执行的, 有两种方法可以解决 注意: 该问题仅存在于 vue1 方法1: 将数据获取放到route.data下~ route: { data({to: {params: { page }}}) { return Promise.all([ this.getApi() ]).then(() => { }) } } 方法2: 设置route.canReuse = false, 强制组件不复用~ route:
-
使用vue-router与v-if实现tab切换遇到的问题及解决方法
vue-router 该如何使用 忽然碰到一个常见的问题,明明可以使用 v-if / v-show 可以的解决的问题,有没有必要是使用 vue-router来解决. 比如常见的 tab 切换.一时间,我有些犹豫了,有没有必要滥用 vue-router.那到底何时用才叫合理呢? 先上代码,用两种方式实现的效果 使用vue-router router import Tab1 from './components/tab/TabOne' import Tab2 from './components/t
-
Vue-router结合transition实现app前进后退动画切换效果的实例
一丶首先配置路由并且修改路由配置 路由配置就不讲了重点,给VueRoute添加一个goBack方法,用于记录路由的前进后退状态 this.isBack = true VueRouter.prototype.goBack = function () { this.isBack = true window.history.go(-1) } 二丶监听路由变化(在路由变化时判断此时的路由状态是前进还是后退) <template> <div> 动态绑定路由动画,根据路由状态的不同绑定不同的路
-
解决vue-router在同一个路由下切换,取不到变化的路由参数问题
最近用vue写项目的时候碰到一个问题,在同一个页面下跳转,路由地址不变,路由参数有变化,一开始只是在data里取路由的参数,发现根本取不到变化的路由参数. 在网上查找了一番后发现可以这样写: watch: { '$route' (to, from) { //这样就可以获取到变化的参数了,然后执行参数变化后相应的逻辑就行了 console.log(this.$route.query) } } 以上这篇解决vue-router在同一个路由下切换,取不到变化的路由参数问题就是小编分享给大家的全部内容了
-
使用vue-router切换页面时,获取上一页url以及当前页面url的方法
今天在实现一个小功能的时候,遇到一个问题,使用vue-router获取上一页面的url信息,我尝试了多种方式,发现使用vue-router的canDeactivate钩子实现这个功能最为方便,现在将我的实现代码总结如下: 项目使用的是vue-cli,直接贴代码 export default { mixins: [], vuex: { actions: {fetchCertificates}, }, data() { return {} }, route: { data() { this.$roo
-
vue router 跳转时打开新页面的示例方法
记录一下在vue项目中如何实现跳转到一个新页面(一个比较简单又比较基础的问题了),有两个方法: 1.<vue-link>标签实现新窗口打开 官方文档中说 v-link 指令被 <router-link> 组件指令替代,且 <router-link> 不支持 target="_blank" 属性,如果需要打开一个新窗口必须要用 <a> 标签,但事实上vue2版本的 <router-link> 是支持 target="_
-
Vue.js 通过jQuery ajax获取数据实现更新后重新渲染页面的方法
1. 引入jquery和vue.js <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script> <script type="text/javascript" src="http://cdn.bootcss.com/vue/2.2.2/vue.min.js"
-
Vue生命周期activated之返回上一页不重新请求数据操作
activated: 英文原意:使活动.触发 在Vue的生命周期函数中,这个好像用的不是特别多?(也许只是在我的工作中这个用的不多,或者说叫几乎不用这个) 一.需求 前不久在项目中有这样一个需求: 在订单页面的地址信息栏,默认通过接口填充了一个已经设置过的一个的默认地址,现在要跳转去地址列表重新选择一个地址并回填到订单页面的地址信息位置 二.尝试 常规操作: 我们通常会将通过接口请求数据的方法放在==created== 或者 ==mounted==这两个生命周期中的一个里面调用. 但是我们知道,
-
JavaScript获得当前网页来源页面(即上一页)的方法
本文实例讲述了JavaScript获得当前网页来源页面(即上一页)的方法.分享给大家供大家参考.具体如下: 下面的JS代码通过document.referrer获得来源页面地址 <!DOCTYPE html> <html> <body> The referrer of this document is: <script> document.write(document.referrer); </script> </body> <
-
获取上一页面的URL和本页的URL的方法
1.获取上一个网页的URL: String url=request.getHeader("Referer"); 2.获取本网页的URL: String url=request.getScheme()+"://"+ request.getServerName()+request.getRequestURI();
-
vue axios请求频繁时取消上一次请求的方法
一.前言 在项目中经常有一些场景会连续发送多个请求,而异步会导致最后得到的结果不是我们想要的,并且对性能也有非常大的影响.例如一个搜索框,每输入一个字符都要发送一次请求,但输入过快的时候其实前面的请求并没有必要真的发送出去,这时候就需要在发送新请求的时候直接取消上一次请求. 二.代码 <script> import axios from 'axios' import qs from 'qs' export default { methods: { request(keyword) { var
-
vue router 通过路由来实现切换头部标题功能
在做单页面应用程序时,一般页面布局头尾两块都是固定在布局页面,中间为是路由入口.这时访问页面时头部标题不会变,该问题的解决方案如下: 通过采用组件内路由卫士(beforeRouterEnter.beforeRouterUpdate)与路由元信息(meta) 来实现更新头部标题信息.点击查看文档 beforeRouterEnter:第一次进入时调用. beforeRouterUpdate:重复使用当前组件时调用. 效果图如下: 注意看页面标题与图标变换 路由元信息(meta)配置 在路由元信息中
-
vue router 组件的高级应用实例代码
1 动态设置页面标题 页面标题是由 <title></title> 来控制的,因为 SPA 只有一个 HTML,所以当切换到不同的页面时,标题是不会发生变化的.必须通过 JavaScript 来修改 <title></title> 中的内容: window.document.title ='xxx' 有一种思路是在每个页面的 *.vue 的 mounted 钩子函数中,通过 JavaScript 来修改 <title></title>
-
Vue Router 实现动态路由和常见问题及解决方法
个人理解:动态路由不同于常见的静态路由,可以根据不同的「因素」而改变站点路由列表.常见的动态路由大都是用来实现:多用户权限系统不同用户展示不同导航菜单. 如何利用Vue Router 实现动态路由 Vue项目实现动态路由的方式大体可分为两种: 前端将全部路由规定好,登录时根据用户角色权限来动态展示路由: 路由存储在数据库中,前端通过接口获取当前用户对应路由列表并进行渲染: 第一种方式在很多Vue UI Admin上都实现了,可以去读一下他们的源码理解具体的实现思路,这里就不过多展开.第二种方式现
随机推荐
- spring boot打包成可执行jar包
- JavaScript中json对象和string对象之间相互转化
- java使用监听器实现一个统计网站在线人数的示例
- php编写的一个E-mail验证类
- Python连接数据库学习之DB-API详解
- asp下用ADODB.Stream代替FSO读取文本文件
- 在node中如何使用 ES6
- Javascript玩转继承(三)
- PHP的5个安全措施小结
- asp汉字中文图片验证码的实现代码
- lua操作excel方法分享
- 阿里云ecs服务器中安装部署node.js的步骤
- SQL Server中的T-SQL的基本对象
- mysql5.7创建用户授权删除用户撤销授权
- js 自带的 map() 方法全面了解
- 解析php中获取系统信息的方法
- 恶劣环境下通信线缆如何才算是正常
- 详解python eval函数的妙用
- Spring Boot集成Swagger2项目实战
- iPhoneX无导航栏页面适配问题解决方案