vue监听动态路由

解决路由参数变化而组件数据不更新的问题。

描述

使用动态路由时,通过链接跳转,而非刷新时,会出现url改变,而组件不更新的情况,如下:


image

关键

使用watch监听$route变化。

效果

效果图

方法

  1. 在router中配置动态路由
{
    path: '/test/:testId',
    name: 'Test',
    component: Test
}
  1. 组件挂载时获取数据
<template>
    <div class="wrap">
        此时的testId是:{{testId}}
        <br/>
        <router-link to="/test/bb">跳转到bb</router-link>
    </div>
</template>

<script>
    export default {
        name: 'Test',
        data() {
            return {
                testId: '',
            };
        },
        // 首次加载获取数据
        mounted() {
            this.testId = this.$route.params.testId;
        },
    };
</script>
  1. 使用watch监听路由变化
//监听路由变化,操作数据更新
watch: {
    $route(to, from) {
        this.testId = this.$route.params.testId;
    },
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,260评论 19 139
  • # 传智播客vue 学习## 1. 什么是 Vue.js* Vue 开发手机 APP 需要借助于 Weex* Vu...
    再见天才阅读 9,079评论 0 6
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,964评论 25 709
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 14,549评论 2 59
  • 《战狼3大猜想》 看完《战狼2》,又回看了《战狼1》,作为主题很鲜明的电影;《战狼1》是弘扬的是面对外敌入侵,我们...
    好郝说话阅读 1,567评论 0 2

友情链接更多精彩内容