在 Vue 中获取当前域名主机(协议+域名+端口)可通过多种方式实现,以下是具体方法及适用场景的总结:
一、使用 window.location 对象(通用方法)
通过浏览器原生 API 获取完整的域名主机信息:
// 获取完整域名主机(包括协议、域名、端口) const fullHost = window.location.origin; // 示例:https://www.example.com:8080 // 分解域名主机的各个部分 const protocol = window.location.protocol; // 协议(如 https:) const hostname = window.location.hostname; // 域名(如 www.example.com) const port = window.location.port; // 端口(如 8080,若默认端口则返回空)
适用场景:
需要获取完整的域名主机信息,包括协议和端口
不依赖 Vue Router 的简单场景。
二、结合 Vue Router 与 window.location(推荐用于 SPA)
在单页应用中,通过 window.location.origin 获取域名主机,并与路由路径组合:
// 获取当前域名主机 + 路由路径 const fullUrl = window.location.origin + this.$route.fullPath; // 示例:https://www.example.com:8080/path?param=1
注意:
this.$route.fullPath 仅返回路径和参数,需与 window.location.origin 拼接才能得到完整 URL
此方法兼容单页应用无刷新跳转的特性
三、通过环境变量配置(多环境适配)
在 .env 文件中预定义域名主机,适用于不同环境(开发/生产):
# .env.development VUE_APP_BASE_HOST=https://dev.example.com:8080 # .env.production VUE_APP_BASE_HOST=https://www.example.com
在代码中读取:
const baseHost = process.env.VUE_APP_BASE_HOST;
适用场景:
需根据环境动态切换域名主机
避免硬编码,提升代码可维护性。
四、特殊场景处理
1. 仅获取域名(不含协议和端口)
const domain = window.location.hostname; // 如 www.example.com
2. 处理默认端口的隐藏
若端口为默认值(HTTP 80/HTTPS 443),window.location.origin 会自动省略端口:
// 示例:https://www.example.com(端口443自动隐藏) console.log(window.location.origin);
五、注意事项
响应式更新问题 window.location 的值不会随路由变化自动更新,若需响应式监听 URL 变化,需结合 watch 监听 $route 对象
跨域限制 通过 window.location 获取的域名受浏览器同源策略限制,无法直接访问跨域域名信息。
完整代码示例
<template> <div> <p>当前域名主机:{{ currentHost }}</p> </div> </template> <script> export default { data() { return { currentHost: window.location.origin // 直接获取域名主机 }; }, mounted() { // 动态监听路由变化(可选) this.$watch( () => this.$route, () => { console.log('路径变化后的域名主机:', window.location.origin); } ); } }; </script>
通过上述方法,可灵活应对不同场景下的域名主机获取需求。
匿名
2025-10-22
盖楼盖楼!
匿名
2025-08-11
沙发沙发
匿名
2025-08-10
https://at.oiik.cn/bing.html
匿名
2025-02-21
实用,我在开发https://minmail.app/时候使用到了
王飞翔
2024-12-30
亲爱的朋友:您好!中国疫情持续蔓延,很多人症状非常严重持久不愈,医院人满为患,各年龄段随地倒猝死的现象暴增,多省感染手足口、甲流、乙流、支原体、合胞及腺病毒的儿童不断攀升,目前各种天灾人祸,天气异象频发。古今中外的很多预言都说了这几年人类有大灾难,如刘伯温在预言中说 “贫者一万留一千,富者一万留二三”,“贫富若不回心转,看看死期到眼前”, 预言中也告诉世人如何逃离劫难的方法,真心希望您能躲过末劫中的劫难,有个美好的未来,请您务必打开下方网址认真了解,内有躲避瘟疫保平安的方法。网址1:https://github.com/1992513/www/blob/master/README.md?abhgc#1 网址2:bitly.net/55bbbb 网址3:https://d3ankibxiji86m.cloudfront.net/30gj 如打不开请多换几个浏览器试
匿名
2024-12-12
Backdata 搜索引擎网址提交入口:https://backdata.net/submit-site.html