vue跳转同一个组件,参数不同,页面接收值只接收一次的解决方法

针对“vue跳转同一个组件,参数不同,页面接收值只接收一次”的问题,我们可以采用以下两种解决方案:

方案一:使用watch监听$route变化

这种方式需要在组件的created或mounted生命周期中,监听vue-router的$route对象。如下所示:

<template>
  <div>
    <p>{{ message }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      message: ''
    }
  },
  watch: {
    $route(to, from) {
      console.log(to.params);
      // 在这里更新数据
      this.message = to.params.message;
    }
  },
  created() {
    // 初始化数据
    this.message = this.$route.params.message;
  }
}
</script>

在上面的代码中,我们定义了一个watch监听$route对象,并在其中更新组件中的数据。

方案二:使用key属性强制更新组件

我们也可以在路由跳转时强制更新组件,这样就能够接收到传入的新参数。具体实现步骤如下:

<template>
  <div>
    <p>{{ message }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      message: ''
    }
  },
  created() {
    // 初始化数据
    this.message = this.$route.params.message;
  },
  methods: {
    handleClick() {
      // 跳转时强制更新组件
      this.$router.replace({
        path: '/home',
        params: {
          message: 'Hello World'
        },
        // 在这里设置新的key
        key: +new Date()
      })
    }
  }
}
</script>

在上面的代码中,我们在跳转路由时通过key属性强制更新组件,从而使得组件能够接收到新的参数。需要注意的是,每次路由跳转都需要设置新的key。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue跳转同一个组件,参数不同,页面接收值只接收一次的解决方法 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • Vue.js如何获取data-*的值

    当我们需要在 Vue.js 中获取 HTML 标签上的 data-* 属性值时,我们可以通过以下两种方式实现: 方式一:在模板中使用 我们可以在 HTML 模板中使用 v-bind 指令或简写的 : 符号将 data-* 属性值绑定到 Vue.js 实例的数据对象中,然后通过数据对象的属性获取值。 HTML 模板代码: <div id="ap…

    Vue 2023年5月27日
    00
  • VUE的数据代理与事件详解

    VUE的数据代理与事件详解 数据代理 VUE中使用了 数据代理 的方式来进行数据绑定和更新。具体来说,当我们在VUE实例中的 data对象 上定义一个属性时,VUE会将该属性转化为getter和setter函数,并且将它们添加到VUE实例上。这样,每当我们通过VUE实例访问这个属性时,就会触发相应的getter或setter函数。 例如,我们在VUE实例中定…

    Vue 2023年5月28日
    00
  • vuex 中辅助函数mapGetters的基本用法详解

    vuex 中辅助函数 mapGetters 的基本用法详解 简介 在 Vuex 中, state 存储着应用中的单一状态树。可以通过 store.state 来获取状态树中的属性。 但是,在有一些情况下,我们需要从 state 中派生一些状态,例如,过滤一些数据或者对数据进行计算,这时可以使用 Getter。Vuex 可以通过 Getter 快速派生出一些状…

    Vue 2023年5月28日
    00
  • 带你一文了解Vue生命周期钩子

    带你一文了解Vue生命周期钩子 Vue生命周期钩子是指Vue在组件实例化、数据更新、渲染页面等不同阶段执行的方法。这些钩子函数对于理解Vue的生命周期非常重要,因为他们使得我们有机会在特定时间节点执行自己的代码。 Vue生命周期的三个阶段 Vue的生命周期可以分为三个主要的阶段: 创建阶段(Creation):在这个阶段Vue实例化组件、设置数据观测、初始化…

    Vue 2023年5月27日
    00
  • vue的ssr服务端渲染示例详解

    下面是关于“Vue的SSR服务端渲染示例详解”的完整攻略: 一、什么是Vue的SSR服务端渲染? Vue的SSR服务端渲染,全称Server-Side Rendering,是指将Vue组件在服务器端渲染成HTML字符串,然后直接发送给浏览器渲染。相比于传统的客户端渲染,SSR有以下优点: 对于SEO(搜索引擎优化)更加友好,因为搜索引擎爬虫可以直接获取到完整…

    Vue 2023年5月28日
    00
  • JS实现的tab切换选项卡效果示例

    JS实现的tab切换选项卡效果是一种非常实用的UI交互实现方式,下面我来详细讲解一下这个效果的完整攻略。 准备工作 在实现这个效果之前,需要准备好以下几个内容: HTML结构 tab切换选项卡是基于HTML结构进行实现的,所以需要先准备好选项卡的基本HTML结构。一般来说,一个基本选项卡的HTML结构可能是这样的: <div class="t…

    Vue 2023年5月28日
    00
  • Vue3 中路由Vue Router 的使用实例详解

    Vue3 中路由Vue Router 的使用实例详解 介绍 Vue Router 是 Vue.js 官方的路由管理器。它和 Vue.js 的核心深度集成,可以很方便的用于构建单页应用程序。Vue Router 2.x 版本为 Vue 2.x 版本提供路由功能,而 Vue Router 3.x 版本为 Vue 3.x 版本提供路由功能,并在性能和体积方面得到了…

    Vue 2023年5月28日
    00
  • Vue动态组件与内置组件浅析讲解

    Vue动态组件与内置组件浅析讲解 什么是Vue动态组件 Vue动态组件是一种结合动态组件和组件的功能,允许我们在运行时通过提供一个名称来动态切换组件。 我们可以使用Vue的内置动态组件标签\<component>,该标签可以通过一个特殊的is属性动态绑定组件。 例如: <component :is="currentComponen…

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