vue3小技巧:分享获取当前路由地址方法。
很多程序员不知道vue3如何获取当前路由地址,本文详细讲解了vue3获取当前路由地址的方法,下面我们一起看看吧。
方法一: {#heading-0}
// router的 path: "/user/:uid"
<template>
<div>user</div>
<p>uid: {{ uid }}</p>
</template>
<script>
import { defineComponent } from "vue";
import { useRouter } from "vue-router";
export default defineComponent({
name: "User",
setup() {
const router = useRouter();
const uid = router.currentRoute.value.params.uid;
return {
// 返回的数据
uid,
};
},
});
</script>
useRouter()
返回的是object
, 类似于vue2的this.$router
而router.currentRoute
是RefImpl
对象, 即我们使用ref
返回的对象, 通过.value
可以访问到当前的路由, 类似于vue的this.$route。
方式二:window.location 可以直接获取当前窗口的路径 {#heading-1}
1.window.location.href(当前URL)
结果:http://www.xxx.com:8866/test?id=123&username=xxx
2.window.location.protocol(协议)
结果:http
3.window.location.host(域名 + 端口)
结果:www.xxx.com:8866
4.window.location.hostname(域名)
结果:www.xxx.com
5.window.location.port(端口)
结果:8866
6.window.location.pathname(路径部分)
结果:/test
7.window.location.search(请求的参数)
结果:?id=123&username=xxx
setup(){
const router = useRouter();
onMounted(() => {
console.log("router",router.currentRoute.value)
if(window.location.pathname=="/askQuestions"){
// if(router.currentRoute.value.path=="/askQuestions"){
console.log("消失;;;;;;")
document.getElementById("navSearch").style.display="none"
}
});