当我们在使用 Vue.js 开发前端应用时,有可能需要监听浏览器地址栏的变化,根据参数的不同,来修改页面的显示逻辑,这就需要监听URL地址栏参数的变化。
当我们在使用 Vue.js 开发前端应用时,有可能需要监听浏览器地址栏的变化,根据参数的不同,来修改页面的显示逻辑,这就需要监听URL地址栏参数的变化。
在vue中监听URL地址栏参数变化的方法,可以使用Vue Router
提供的$route
对象。$route
包含了当前路由信息,可以通过它来获取URL的地址栏参数信息。如果我们要监听该参数的变化,只需通过watch
方法来监听$route
的变化,即可实现。
具体实现步骤如下:
- 安装
vue-router
首先,我们要在项目中安装vue-router
。如果你还没有安装,请在终端中执行以下命令:
npm install vue-router
- 引入
vue-router
并进行配置
在 Vue.js 项目中,我们需要在main.js
中引入vue-router
并进行初始化配置。具体操作如下:
import Vue from 'vue'
import VueRouter from 'vue-router'
import App from './App.vue'
Vue.use(VueRouter)
const router = new VueRouter({
routes: [
{
path: '/',
name: 'home',
component: () => import('./views/Home.vue')
},
{
path: '/about',
name: 'about',
component: () => import('./views/About.vue')
}
]
})
new Vue({
router,
render: h => h(App),
}).$mount('#app')
在上述的代码中,我们初始化了一个 router
对象,并且给它设置了两个路由,一个是 /
,一个是 /about
。
- 监听
$route
对象的变化
在 Vue 组件中,我们可以通过 watch
方法来监听 $route
对象的变化。具体实现如下:
<template>
<div>
<h2>{{ message }}</h2>
</div>
</template>
<script>
export default {
name: 'Home',
data() {
return {
message: ''
}
},
watch: {
'$route': function(to, from) {
this.message = '当前URL地址栏参数为:' + this.$route.query.id
}
}
}
</script>
在上述代码中,我们定义了一个组件 Home
,并在 watch
方法中监听了 $route
对象的变化。当 $route
对象变化时,会触发 watch
方法中的回调函数,我们就可以在回调函数中获取到 URL 地址栏中的参数,并赋值到组件的 message
属性中。
- 在模板中使用
message
最后,在组件的模板中,我们可以通过 {{ message }}
来显示 URL 地址栏中参数的值。
<template>
<div>
<h2>{{ message }}</h2>
</div>
</template>
<script>
export default {
name: 'Home',
data() {
return {
message: ''
}
},
watch: {
'$route': function(to, from) {
this.message = '当前URL地址栏参数为:' + this.$route.query.id
}
}
}
</script>
如果我们现在打开浏览器,访问 http://localhost:8080/?id=123
,我们就可以在页面上看到以下内容:
当前URL地址栏参数为:123
示例2:
<template>
<div>
<h2>{{ message }}</h2>
</div>
</template>
<script>
export default {
name: 'About',
data() {
return {
message: ''
}
},
mounted() {
this.message = '当前URL地址栏参数为:' + this.$route.params.id
},
watch: {
'$route': function(to, from) {
this.message = '当前URL地址栏参数为:' + this.$route.params.id
}
}
}
</script>
在组件的 mounted()
方法中,我们给 message
属性赋了一个初始值,这样我们在页面初次加载时就能显示出参数的值。而在 watch
方法中,我们也监听了 $route
对象,并且在回调函数中更新了 message
属性。
我们就可以通过访问 http://localhost:8080/about/123
来验证效果了。
本文标题为:vue中如何监听url地址栏参数变化
- JS实现在状态栏显示打字效果完整实例 2023-12-01
- 基于微前端qiankun的多页签缓存方案实践 2022-10-21
- javascript – 在HTML5 Web SQL数据库中对日期时间进行排序 2023-10-26
- 关于Ajax技术中servlet末尾的输出流 2023-01-21
- html中显示特殊符号(附带特殊字符对应表) 2022-09-21
- Servlet+Ajax实现智能搜索框智能提示功能 2023-02-01
- Vue双向绑定v-model 2023-10-08
- css -webkit-line-clamp WebKit的CSS扩展(WebKit是私有属性) 2024-01-05
- JavaScript使用Promise封装Axios进行高效开发 2023-07-10
- 浅谈HTML5 服务器推送事件(Server-sent Events) 2022-09-16