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中watch对象内属性的方法

    当我们需要对Vue实例中的某个数据进行观察,以便在数据发生变化时执行一些操作时,我们可以使用Vue中的“watch”属性。如果需要观察的是对象内的属性,我们需要使用特殊的方法来观察内部属性的变化。 以下是详解Vue中watch对象内属性的方法的完整攻略: 1. 监听深层次对象内属性的变化 在Vue中,某些情况下我们需要深层次的监听对象内属性的变化,我们可以通…

    Vue 2023年5月27日
    00
  • Vue数组响应式操作及高阶函数使用代码详解

    Vue数组响应式操作及高阶函数使用代码详解 Vue中的响应式机制是Vue中一个非常重要的概念,其可以让数组、对象或属性成为响应式(Reactivity)的数据,即当修改这些数据时,会触发页面实时更新。在本攻略中,我们将重点讨论Vue中数组响应式操作及高阶函数的使用。 数组响应式操作 在Vue中,可以通过以下方式将数组转为响应式数据: const vm = n…

    Vue 2023年5月28日
    00
  • iview实现动态表单和自定义验证时间段重叠

    iView是一款基于Vue.js的UI框架,可以快速搭建美观、易用的网页应用程序。在iView中实现动态表单和自定义验证时间段重叠的功能,需要深入了解iView的表单组件和验证组件。 实现动态表单 在iView中,通过<Form :model=”formData”>和<FormItem>标签可以构建表单。动态表单的实现需要以下步骤: …

    Vue 2023年5月29日
    00
  • 简易vuex4核心原理及实现源码分析

    下面就来详细讲解一下“简易vuex4核心原理及实现源码分析”的完整攻略。 一、什么是Vuex? Vuex是Vue.js官方推出的一款状态管理模式。作为一个共享状态管理库,它可以将多个组件之间共享的状态抽离出来形成全局唯一数据源,提供了一种集中式存储和管理应用状态的方案。 二、Vuex核心原理 Vuex的核心原理是响应式数据,也就是说,所有数据的变更都可以被具…

    Vue 2023年5月27日
    00
  • vue form表单post请求结合Servlet实现文件上传功能

    要实现vue form表单post请求结合Servlet实现文件上传功能,需要经历以下几个步骤: 在前端使用vue构建表单,确保表单中包含文件上传控件 <template> <form enctype="multipart/form-data" method="post" action="&…

    Vue 2023年5月27日
    00
  • Vue Render函数原理及代码实例解析

    Vue Render函数原理及代码实例解析 Render函数是Vue中非常重要的一个概念。对于Render函数的深入理解能够帮助我们更好地理解Vue的内部实现机制。本文将从以下几个方面介绍Vue Render函数的原理和代码实例。 什么是Render函数 Render函数是Vue模板编译之后生成的一个函数,负责将Vue实例渲染成一个虚拟DOM树,最终将虚拟D…

    Vue 2023年5月28日
    00
  • Vue核心概念Action的总结

    下面是Vue核心概念Action的总结的完整攻略。 什么是Action Action是Vuex服务于mutations的触发器,用于处理异步请求和复杂的逻辑。 Action的语法 在Vuex中,定义一个Action的语法如下: actions: { actionName (context, payload) { // 逻辑处理 } } 其中,actions是…

    Vue 2023年5月27日
    00
  • Vue 路由传参加密的示例代码

    下面我将详细讲解“Vue 路由传参加密的示例代码”的完整攻略。 1. 添加 crypto-js 库 首先我们需要引入一个加密解密库:crypto-js。可以使用 npm 或者通过 CDN 引入。 <!– 通过 CDN 引入 –> <script src="https://cdn.bootcdn.net/ajax/libs/cr…

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