前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >(六)解决路由组件切换刷新问题

(六)解决路由组件切换刷新问题

作者头像
老怪兽
发布2023-02-22 18:28:36
5850
发布2023-02-22 18:28:36
举报
路由组件不刷新
  • 可以从地址栏看到,url 改变了,但是租价你的内容却没有改变,vueRouter 对于这种同组件的跳转时不会在重新销毁常创建的
  • 通过 watch 监听解决
代码语言:javascript
复制
<template>
  <article>
    <h2>
      {{ blogPost.title }}
    </h2>
    <p>{{ blogPost.body }}</p>
    <footer>
      <router-link to="/">回到主页</router-link>
      <router-link :to="`/${blogPost.id - 1}`">上一篇</router-link>
      <router-link :to="`/${blogPost.id + 1}`">下一篇</router-link>
    </footer>
  </article>
</template>
<script>
import { getBlogPostById } from "../data/blogPosts";

export default {
  data() {
    return { blogPost: {} };
  },

  // 方式一,和 vue 3 的使用基本一样
  // created() {
  //     this.$watch(
  //       () => this.$route.params,
  //       function (params, OldParams) {
  //         this.blogPost = getBlogPostById(this.$route.params.postId);
  //       },
  //       {
  //         immediate: true,
  //       }
  //     );
  // },
  // 方式二
  watch: {
    "$route.params": {
      handler(params, oldParams) {
        this.blogPost = getBlogPostById(params.postId);
      },
      immediate: true,
    },
  },
};
</script>
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022年11月13日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 路由组件不刷新
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档