vue 组件销毁并重置

近期写项目碰到一个问题:应用场景是 ===》父组件有个按钮,展开有4个选项btn 每点击一个btn弹出相对应的一个浮层,然后逻辑没有问题,但是浮层显示的总是第一个点击的内容,网上一搜,是组件没有销毁,所以不管点击哪个btn,展示的都是第一次浮层的内容 以下是解决方案

当数据有变化后,我们通过watch 监听,先去销毁当前的组件,然后再重现渲染。使用 v-if 来解决:

 <template>
   <el-form-renderer
        v-if="showForm"
        ref="formRender"
        :content="modalContent"
      />
 </template>
 
<script>
   export default{
       data(){
          return {
               showForm:false,   
            }
       },
       watch:{
             isShow(){
                  this.showForm= true
                  this.$nextTick(()=>{
                    {...} 
                    this.showForm = false
                })
            }
       }
}
</script>

//  第二种

<template>
  <el-form-renderer
        :key="showForm"
        ref="formRender"
        :content="modalContent"
      />
</template>

<script>
  export default{
      data(){
         return {
               showForm:1
           }
      },
      watch:{
            isShow(){
               ++this.showForm
           }
      }
}
</script>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 方法1 当数据变更后,通过watch 监听,先去销毁当前的组件,然后再重现渲染。使用 v-if 可以解决这个问题 方法2
    O槑頭槑腦阅读 64,488评论 2 10
  • 前言 记录平时学到的知识,标题写的大气一点,也算是给自己一点鼓励,希望在技术这条路可以远走越远,路越走越宽~ 文中...
    徐国军_plus阅读 1,057评论 0 9
  • 主要还是自己看的,所有内容来自官方文档。 介绍 Vue.js 是什么 Vue (读音 /vjuː/,类似于 vie...
    Leonzai阅读 3,407评论 0 25
  • VUE介绍 Vue的特点构建用户界面,只关注View层简单易学,简洁、轻量、快速渐进式框架 框架VS库库,是一封装...
    多多酱_DuoDuo_阅读 2,774评论 1 17
  • 1.vue.js的两个核心是什么? vue.js的两个核心分别是数据驱动(MVVM)和组件化。 一、数据驱动 数据...
    fengcol阅读 1,075评论 0 3