美文网首页
vue复用组件页面无法更新

vue复用组件页面无法更新

作者: 肥羊猪 | 来源:发表于2021-06-18 16:10 被阅读0次

问题场景:

<div id="app">
  <ul>
    <li><router-link to="/home/foo">To Foo</router-link></li>    
    <li><router-link to="/home/baz">To Baz</router-link></li>    
    <li><router-link to="/home/bar">To Bar</router-link></li>    
  </ul>    
  <router-view></router-view>
</div>
const Home = {
  template: `<div>{{message}}</div>`,
  data() {
    return {
      message: this.$route.params.name
    }
  }
}
const router = new VueRouter({
  mode:'history',
    routes: [
    {path: '/home', component: Home },
    {path: '/home/:name', component: Home }
  ]
})
new Vue({
  el: '#app',
  router
})
// 在路由构建选项 routes 中配置了一个动态路由 '/home/:name',它们共用一个路由组件 Home,这代表他们复用 RouterView 。
// 当进行路由切换时,页面只会渲染第一次路由匹配到的参数,之后再进行路由切换时,message 是没有变化的。

解决办法:

  1. 通过 watch 监听 $route 的变化。
const Home = {
  template: `<div>{{message}}</div>`,
  data() {
    return {
      message: this.$route.params.name
    }
  },
  watch: {
       '$route': function() {
       this.message = this.$route.params.name
    }
    }
}
...
new Vue({
  el: '#app',
  router
})

2.给 <router-view>绑定key属性,这样 Vue 就会认为这是不同的 <router-view>

<router-view :key="key"></router-view>

参考:https://github.com/xiaofuzi/deep-in-vue/issues/11

相关文章

  • vue复用组件页面无法更新

    问题场景: 解决办法: 通过 watch 监听 $route 的变化。 2.给 绑定ke...

  • 组件

    组件 1 组件的定义 组件就是复用一个VUE实例,它含有所有的vue实例上的属性和方法。把共通的页面或者代码片段提...

  • 更新部分页面但是不刷新整个页面

    app.vue 需要更新页面的子组件

  • 三篇文章学完Vue(二)

    组件 组件是可复用的vue实例,且带有名字。 1.因为组件为可复用的Vue实例,所以它们与new Vue接收相同的...

  • vue 组件

    什么是组件? 组件是可复用的 Vue 实例。 为什么要使用组件? 使用组件能将项目按功能模块或页面层级拆分得更细小...

  • vue同页面跳转,实现页面重新刷新解决方案

    问题描述 vue跳转同一路径时,路由参数改变,但页面无法更新 问题原因 vue路由切换实际是组件间的切换,引用相同...

  • Vue面试总结

    Vue优点 数据驱动和组件化 数据驱动:自动计算属性和追踪依赖的模板表达 组件化:可复用,解耦的组件来构造页面 V...

  • Vue组件间通信7种方式

    前言 vue的核心就是组件的使用,组件是可复用的vue实例。如果项目中某一个部分需要在多个页面中使用到,我们就可以...

  • Vue组件间通信7种方式

    前言 vue的核心就是组件的使用,组件是可复用的vue实例。如果项目中某一个部分需要在多个页面中使用到,我们就可以...

  • Vue多个路由共用同一组件时,互相切换时更新组件

    在Vue中切换路径时,如果下一个路由与当前页面共用同一个组件,Vue会复用当前组件,不会重新创建一个。这就导致组件...

网友评论

      本文标题:vue复用组件页面无法更新

      本文链接:https://www.haomeiwen.com/subject/przkyltx.html