vue如何获取当前页面的url

1关于window.location的详解:
window.location 对象不仅可以获得当前页面的地址 (URL),还能够将浏览器重定向到新的页面。

下面,以http://www.baidu.com:8080/test?id=123为例来进行解释:

获取方式:
1)window.location

   1. window.location.href (当前url)—— http://www.baidu.com:8080/test?id=123

  2. window.location.protocol(协议)—— http:

  3. window.location.host(域名 + 端口)—— www.baidu.com:8080
  
  4. window.location.hostname(域名)—— www.baidu.com

  5. window.location.port(端口)—— 8080

  6. window.location.pathname(路径)—— /test

  7. window.location.search (请求的参数)—— ?id=123

  8. window.location.origin(路径前面的url)——  http://www.baidu.com:8080

2) this.$route.path—— /test

通过注入路由,我们可以在任何组件内通过 this. r o u t e r 访 问 路 由 器 , 也 可 以 通 过 t h i s . router 访问路由器,也可以通过 this. router访this.route 访问当前的路由。
this. r o u t e r 与 t h i s . router与this. routerthis.route 两者相差 一个 r 但是差距蛮大的
可以理解为:

this.$router 相当于一个全局的路由对象,包含路由相关的属性、对象 (如 history 对象) 和方法,在任何页面都可以通过 this.$router 调用其方法如 push() 、go() 、resolve() 等。
this.$route 表示当前的路由对象。每一个路由都有一个 route 对象,它是一个局部的对象,可以获取当前路由对应的 name , params, path , query 等属性。

this.$route 在这里插入图片描述

Vue.js框架中,获取当前页面地址可以通过JavaScript的原生对象`window.location`来实现。由于Vue是运行在浏览器端的框架,可以直接使用浏览器提供的全局对象来获取当前页面URL信息。 具体来说,可以使用`window.location.href`获取完整的URL地址,使用`window.location.pathname`获取URL的路径部分,使用`window.location.search`获取URL中的查询字符串部分(即问号后的部分),使用`window.location.hash`获取URL的锚点部分(即井号后的部分)。 在Vue组件中,如果你想在某个生命周期钩子或者方法中获取当前地址,可以这样做: ```javascript // 在Vue组件的methods中添加一个方法来获取当前地址 methods: { getCurrentUrl() { // 获取完整的URL地址 console.log(window.location.href); // 获取路径部分 console.log(window.location.pathname); // 获取查询字符串部分 console.log(window.location.search); // 获取锚点部分 console.log(window.location.hash); } } ``` 在实际应用中,如果你需要在Vue中进行路由管理,通常会使用Vue Router。Vue Router提供了导航守卫功能,可以在路由变化时执行相应的操作。例如,在路由跳转前获取当前路由地址,可以使用`beforeRouteEnter`和`beforeRouteUpdate`导航守卫: ```javascript beforeRouteEnter (to, from, next) { // 在渲染该组件的对应路由被 confirm 前调用 // 不!能!获取组件实例 `this` // 因为当守卫执行前,组件实例还没被创建 next(vm => { // 通过 `vm` 访问组件实例 }) }, beforeRouteUpdate (to, from, next) { // 在当前路由改变,但是该组件被复用时调用 // 举例来说,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候, // 由于会渲染同样的 Foo 组件,因此组件实例会被复用。而这个守卫就会在这种情况下被调用。 this.currentUrl = window.location.href; next(); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值