在Vue中,要获取指定router name的完整URL地址,你可以使用Vue Router提供的方法。以下是几种实现方式:
使用 $router.resolve() 方法:export default { methods: { getFullPath(routeName, params = {}, query = {}) { const route = this.$router.resolve({ name: routeName, params: params, query: query }); return window.location.origin + route.href; } } }
使用示例:
const fullUrl = this.getFullPath('user', { id: 123 }, { tab: 'profile' }); console.log(fullUrl); // 输出类似:https://example.com/user/123?tab=profile使用 $router.resolve() 和 URL 对象:
export default { methods: { getFullUrl(routeName, params = {}, query = {}) { const route = this.$router.resolve({ name: routeName, params: params, query: query }); return new URL(route.href, window.location.origin).href; } } }在Vue 3和Vue Router 4中,你可以使用 useRouter 组合式API:
import { useRouter } from 'vue-router'; export default { setup() { const router = useRouter(); const getFullUrl = (routeName, params = {}, query = {}) => { const route = router.resolve({ name: routeName, params: params, query: query }); return new URL(route.href, window.location.origin).href; }; return { getFullUrl }; } }
注意事项:
确保你的路由配置中正确设置了 name 属性。
params 和 query 是可选的,取决于你的路由配置和需求。
这些方法返回的是绝对URL。如果你只需要相对路径,可以去掉 window.location.origin。
在服务器端渲染(SSR)环境中,window.location.origin 可能不可用,你需要提供一个基础URL。
对于包含动态段的路由,确保在调用时提供所有必要的参数。
使用这些方法,你可以在Vue应用中方便地获取任何命名路由的完整URL地址。这在需要生成链接、分享URL或进行重定向时特别有用。
网友回复
DLNA与UPnP的区别和不同?
苏超自建抢票app,通过先预约再抽签化解高并发抢票?
python如何让给电脑在局域网中伪装成电视接收手机的投屏图片视频播放?
如何结合python+js如何自己的视频编码与加密播放直播?
python如何在电脑上通过局域网将本地视频或m3u8视频投屏电视播放?
腾讯视频爱奇艺优酷vip电影电视剧视频如何通过python绕过vip收费直接观看?
有没有可免费观看全球电视台直播m3u8地址url的合集?
有没有实现观影自由的免vip影视苹果 CMS V10 API的可用url?
python如何实时检测电脑usb插入检测报警?
如何判断真人操作的鼠标移动直线轨迹与机器操作的轨迹?