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

yizhihongxing

针对“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或js实现中文A-Z排序的方法

    我来给你讲一下“vue.js或js实现中文A-Z排序的方法”的完整攻略。 1. 安装第三方库 pinyin 在 Vue.js 或 js 中实现中文 A-Z 排序需要用到拼音转换,我们可以使用第三方库 pinyin。可以在终端中运行以下指令进行安装: npm install pinyin –save 2. 调用 pinyin 库进行排序 2.1 Vue.js…

    Vue 2023年5月28日
    00
  • vue-router传参的四种方式超详细讲解

    下面是“vue-router传参的四种方式超详细讲解”的完整攻略。 一、路径参数 路径参数是指在路由路径中使用“:xxx”的方式来表示一个参数,该参数为动态的,可以根据需要传入不同的值。使用路径参数可以方便地对同一组件进行不同样式或页面展示的切换,比如展示一组商品列表时选择不同的分类。 在定义路由时,只需将参数用“:”包围即可,如下所示: { path: ‘…

    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
  • 详解Vuex的属性

    下面就详细讲解一下Vuex的属性: Vuex的属性 Vuex是一个专为Vue.js应用程序开发的状态管理模式,它集中管理Vue应用程序中的所有组件的状态。在Vuex中,有几个重要的属性:state、mutations、actions、getters和modules,下面将逐一进行详解。 state state是Vuex中存储响应式数据的地方,唯一的数据源。当…

    Vue 2023年5月27日
    00
  • vue项目中请求数据特别多导致页面卡死的解决

    针对“vue项目中请求数据特别多导致页面卡死的解决”的问题,我们可以采用以下的解决方案: 1. 分页查询 在使用vue进行数据交互过程中,我们可以采用分页查询的方式,将数据进行分段展示,以避免一次性请求数据过多导致页面卡死。在实际开发中,我们可以将数据进行分页处理,控制每次请求的数据量,最终将数据分批渲染到页面上。下面是一个示例的代码: // 数据分页处理 …

    Vue 2023年5月28日
    00
  • vue3+vite使用环境变量.env的一些配置情况详细说明

    下面是关于”vue3+vite使用环境变量.env的一些配置情况详细说明”的完整攻略。 简介 在Vue3和Vite开发环境中,使用环境变量可助力于管理不同的配置文件,例如本地开发环境、生产环境等。 当我们需要在不同的环境中配置不同的API地址、配置信息等时,使用环境变量便能够让我们的代码变得更加灵活通用。在这里,我们将详细说明如何在Vue3+Vite项目中使…

    Vue 2023年5月28日
    00
  • vue el-switch初始值(默认值)不能正确显示状态问题及解决

    Vue el-switch初始值不能正确显示状态问题及解决攻略 问题描述: vue使用element UI库中的switch组件时,如果设置了默认值,可能会出现初始状态无法正确显示的问题。 问题分析: 这个问题的原因是因为element UI中的switch并没有提供v-model来绑定value值,而是提供了v-model来绑定一个boolean值,也就是…

    Vue 2023年5月27日
    00
  • Vue-CLI 3 scp2自动部署项目至服务器的方法

    下面是“Vue-CLI 3 scp2自动部署项目至服务器的方法”的完整攻略。 1. 安装scp2与ssh2 首先需要安装scp2和ssh2,可以通过npm安装。 npm install scp2 ssh2 –save-dev 2. 准备打包脚本 在package.json中新增打包脚本命令: "build:prod": "vu…

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