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

yizhihongxing

当我们在使用 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日

相关文章

  • 一篇了解JSON与数据存储基础知识

    一篇了解JSON与数据存储基础知识 什么是JSON JSON(JavaScript Object Notation),是一种轻量级的数据交换格式,易于阅读和编写,通常在客户端和服务器之间传递数据。它的数据格式与JavaScript中的对象(object)格式非常类似。 在JSON格式中,数据以键值对(key-value)的方式表示。一个键(key)对应一个值…

    JavaScript 2023年5月27日
    00
  • js实现的日期操作类DateTime函数代码

    JS实现的日期操作类DateTime函数代码 什么是DateTime函数 DateTime函数是一种JS函数,用于实现日期的操作,包括日期增减、格式转换等操作。 DateTime函数的实现 以下代码实现了DateTime函数,具体实现了以下功能: 获取当前日期; 日期增减; 时间格式转换。 class DateTime { constructor(date)…

    JavaScript 2023年5月27日
    00
  • 一个最简单的级联下拉菜单

    下面是一个最简单的级联下拉菜单的制作攻略: 一、确定数据结构 首先需要确定级联下拉菜单的数据结构。通常使用 JSON 格式存储。一个简单的数据结构示例如下: { "中国": { "广东": ["广州", "深圳", "东莞"], "北京":…

    JavaScript 2023年6月11日
    00
  • JavaScript数组实现数据结构中的队列与堆栈

    JavaScript数组实现数据结构中的队列与堆栈 简介 JavaScript数组是一种有序、可变的数据结构,适用于实现数据结构中的队列和堆栈。队列和堆栈都是抽象数据类型,可以通过数组来实现。 队列 队列是一种先进先出(FIFO)的数据结构,比如排队买票,队首先到达的人先买到票。可以通过JavaScript数组模拟队列的实现。 排队买票的例子 下面是一个使用…

    JavaScript 2023年5月27日
    00
  • json字符串之间的相互转换示例代码

    下面是讲解“JSON字符串之间的相互转换示例代码”的完整攻略,包含两条示例说明。 什么是JSON? JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。JSON格式采用键值对的方式来表示数据,方便数据的存储和传输。 如何将JSON字符串转换为JavaScript对象? 可以使用 JSON.parse() 方法将JSON…

    JavaScript 2023年5月27日
    00
  • js怎么终止程序return不行换jfslk

    JS中终止程序有多种方式,但是通过return语句来终止程序是比较常见和方便的方法。如果使用return无法终止程序,可能是由于函数嵌套、异步操作等原因,下面我们来详细讲解如何解决。 函数嵌套 当函数嵌套的时候,使用return只能终止当前函数的执行,而不能终止外层函数的执行。这时需要使用return语句和一个标识符来协同工作,让外层函数在适当的时候捕获这个…

    JavaScript 2023年5月27日
    00
  • 详解JavaScript常量定义

    下面我将详细讲解“详解JavaScript常量定义”的完整攻略。 什么是JavaScript常量 在JavaScript中,声明一个变量的方式有两种:使用var关键字声明和使用const关键字声明。其中const声明的变量就是JavaScript常量。 常量是指在程序执行过程中其值不可变的变量。一旦用const关键字声明一个变量,就不能再对它进行赋值操作,否…

    JavaScript 2023年6月11日
    00
  • 彻底弄懂 JavaScript 执行机制

    彻底弄懂 JavaScript 执行机制 JavaScript 的执行环境 JavaScript 代码的执行必须依赖一个执行环境,该执行环境可以是浏览器、 Node.js 服务器或其它解释器等等,而这些执行环境会为 JavaScript 提供几乎相同的对象和方法,但是在细节上或许会略有不同。 JavaScript 的执行过程 JavaScript 的执行过程…

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