c语言编程笔录

首页 >   > 笔记大全

笔记大全

vue中怎么监听url地址栏参数变化

更新时间:2023-09-12
段落一:如何获取URL参数 在Vue中,我们可以通过监听路由参数变化来获取URL参数。每当路由发生变化时,Vue会自动重新渲染相关的视图组件。我们可以使用Vue Router提供的$router对象来实现路由参数的获取和监听。具体实现方式如下:

获取路由参数

 //获取路由参数
this.$route.params.id
该代码可以用来获取URL中的路由参数,比如路由为"/post/:id",那么可以使用上述代码获取到id这个参数的值。

路由监听实现方式

watch: {
    '$route.params.id': function(newId, oldId) {
            console.log(`new: ${newId}, old: ${oldId}`)
    }
}
在Vue中,我们可以使用watch监听$route对象的参数变化。上述代码可以用来监听路由参数id的变化,并在控制台输出新旧参数的值。 段落二:如何使用路由参数 有了路由参数,我们就可以根据参数的值来显示相应的页面内容。在Vue中,我们可以使用$router.push()方法来改变路由参数的值,并自动跳转到相应的页面。具体实现方式如下:

使用路由参数



navigateToPost() {
    const postId = 1
    this.$router.push(`/post/${postId}`)
}
该代码首先定义了一个按钮元素,点击该按钮会触发navigateToPost()方法。该方法通过$router.push()方法改变了URL中的路由参数,使其变成“/post/1”,并跳转到相应的页面。 段落三:如何使用watch监听URL参数变化 使用watch监听$route.params并不十分有效,因为$route对象只有在路由变化时才会更新。如果我们希望在URL参数每次变化时都监听到,我们可以将$route对象转化为简单的数据对象,并使用Vue提供的$watch()方法来监听变化。

使用$watch()监听URL参数变化

data() {
    return {
        id: this.$route.params.id

    }
},
watch: {
    id: function(newId, oldId) {
        console.log(`new: ${newId}, old: ${oldId}`)
    },

    ?'$route.params.id': function(newId, oldId) {
? ? ? ? ? console.log(`new: ${newId}, old: ${oldId}`)
? ? ? },
},
methods: {
    redirectToNewPost() {
        const newId = 2
        this.$router.push(`/post/${newId}`)
    }
}
在data()中定义了一个id属性,这个属性与$route.params.id有关,用来存储路由参数。然后在watch中监听id属性值的变化,并在控制台输出新旧值。最后,在redirectToNewPost()方法中,我们通过$router.push()方法来改变路由参数的值,然后监听该参数的变化。 段落四:总结 通过监听路由参数变化,我们可以获取URL中的参数,根据参数的值来显示相应的内容。在Vue中,我们可以使用$route对象来实现路由参数的获取和监听。如果想在URL参数每次变化时监听参数变化,我们可以将$route对象转化为简单的数据对象,并使用Vue提供的$watch()方法来实现监听功能。 总的来说,Vue的路由功能非常强大,我们可以通过这个功能来实现SPA单页应用、动态页面跳转等常见功能。掌握路由参数监听,可以帮助我们更好地实现复杂的业务需求。