在 Vue 中获取当前域名主机(协议+域名+端口)

云游道人 2025-04-15 686 阅读 0评论


在 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>

通过上述方法,可灵活应对不同场景下的域名主机获取需求。

喜欢就支持以下吧
点赞 0

发表评论

快捷回复: 表情:
aoman baiyan bishi bizui cahan ciya dabing daku deyi doge fadai fanu fendou ganga guzhang haixiu hanxiao zuohengheng zhuakuang zhouma zhemo zhayanjian zaijian yun youhengheng yiwen yinxian xu xieyanxiao xiaoku xiaojiujie xia wunai wozuimei weixiao weiqu tuosai tu touxiao tiaopi shui se saorao qiudale qinqin qiaoda piezui penxue nanguo liulei liuhan lenghan leiben kun kuaikule ku koubi kelian keai jingya jingxi jingkong jie huaixiao haqian aini OK qiang quantou shengli woshou gouyin baoquan aixin bangbangtang xiaoyanger xigua hexie pijiu lanqiu juhua hecai haobang caidao baojin chi dan kulou shuai shouqiang yangtuo youling
提交
评论列表 (有 0 条评论, 686人围观)

最近发表

热门文章

最新留言

热门推荐

标签列表