vue中如何监听url地址栏参数变化

当我们在使用 Vue.js 开发前端应用时,有可能需要监听浏览器地址栏的变化,根据参数的不同,来修改页面的显示逻辑,这就需要监听URL地址栏参数的变化。

在vue中监听URL地址栏参数变化的方法,可以使用Vue Router提供的$route对象。$route包含了当前路由信息,可以通过它来获取URL的地址栏参数信息。如果我们要监听该参数的变化,只需通过watch方法来监听$route的变化,即可实现。

具体实现步骤如下:

  1. 安装 vue-router

首先,我们要在项目中安装vue-router。如果你还没有安装,请在终端中执行以下命令:

npm install vue-router
  1. 引入 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

  1. 监听 $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 属性中。

  1. 在模板中使用 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地址栏参数变化 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • js读取json的两种常用方法示例介绍

    下面是详细的攻略: JS读取JSON的两种常用方法示例介绍 简介 JSON(JavaScript Object Notation)是一种数据交换格式,它具有轻量、易读、易写等特点,并且在前后端分离的开发模式中得到了广泛应用。本篇文章主要介绍JS读取JSON的两种常用方法,以及实际代码示例。 方法一:XMLHttpRequest XMLHttpRequest对…

    JavaScript 2023年5月27日
    00
  • JavaScript常用对象的方法和属性小结

    JavaScript常用对象的方法和属性是 JavaScript 开发中经常用到的,包括字符串对象、数组对象、数值对象、日期对象、正则表达式对象等等。下面我将为你详细讲解这些常用对象的方法和属性。 字符串对象 字符串对象是 JavaScript 中最常用的对象之一,有很多对字符串进行操作的方法和属性。 常用方法 charAt(index):返回字符串中指定下…

    JavaScript 2023年5月19日
    00
  • JavaScript探测CSS动画是否已经完成的方法

    前置知识: 在 JavaScript 中,我们可以使用 addEventListener() 方法给元素添加事件监听器,使用 animationstart、animationiteration 和 animationend 事件来侦测 CSS 动画的开始、循环和结束。 方法一:监听 animationend 事件 当 CSS 动画结束时,会触发元素的 ani…

    JavaScript 2023年6月10日
    00
  • javascript 显示全局变量与隐式全局变量的区别

    展示全局变量和隐式全局变量是JavaScript中两种不同类型的变量声明方式。它们在作用域、可访问性以及代码安全性方面有所不同。 什么是全局变量? 全局变量是JavaScript中定义在顶层作用域中的变量。这意味着这些变量可以在代码中的任何位置被访问到,而非仅限于其定义位置所在的函数或代码块中。可以通过var,let,const等关键字来声明全局变量。 一个…

    JavaScript 2023年5月28日
    00
  • js replace(a,b)之替换字符串中所有指定字符的方法

    关于 JavaScript 中字符串替换方法 replace(a, b) 的使用,我来给你详细讲解一下。 基本语法 replace() 方法用于替换字符串中的指定值。该方法可以接收两个参数: 要替换的字符串 替换后的字符串 语法如下: string.replace(searchValue, replaceValue) 其中,searchValue 是要替换的…

    JavaScript 2023年5月28日
    00
  • JavaScript getter setter金字塔​​​​​​​

    JavaScript getter setter金字塔是一个针对JavaScript对象的编程技巧,用于在对象中定义getter和setter方法,这些方法可以设置和获取对象的属性值。这个技巧的特点是将getter和setter方法嵌套在一起,形成一个金字塔状的结构,以实现对对象属性的高度定制和控制。 以下是完整的JavaScript getter sett…

    JavaScript 2023年5月28日
    00
  • JavaScript Length 属性的总结

    我们来讲解一下JavaScript Length 属性的总结。 什么是JavaScript Length属性 在JavaScript中,Length属性是Array对象的一个属性,用来返回该数组的元素个数。当Length属性被调用时,它的返回值是一个表示数组中元素个数的数字。 JavaScript Length属性的使用方法 可以使用以下语法来获得数组的长度…

    JavaScript 2023年5月28日
    00
  • 一次围绕setTimeout的前端面试经验分享

    一次围绕 setTimeout 的前端面试经验分享 问题 题目:实现一个函数 delay(fn, time),该函数接收一个函数和一个时间参数,返回一个新的函数,在调用这个新函数时,会在指定的时间之后执行传入的原函数。 思路:使用 setTimeout 函数来实现该功能。 代码 function delay(fn, time) { return functi…

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部