首页 > 其他分享 >vue父子组件传参后,子组件重新初始化

vue父子组件传参后,子组件重新初始化

时间:2024-03-11 12:01:12浏览次数:29  
标签:初始化 updated vue 传参后 beforeUpdate initData --- 组件

首先回顾一下父子组件生命周期的执行顺序:

加载渲染过程:

  • 父beforeCreate ---> 父created ---> 父beforeMount ---> 子beforeCreate ---> 子created ---> 子beforeMount ---> 子mounted ---> 父mounted

 子组件更新过程:

  • 父beforeUpdate ---> 子beforeUpdate---> 子updated---> 父updated

父组件更新过程:

  • 父beforeUpdate ---> 父updated

销毁过程:

  • 父beforeDestroy ---> 子beforeDestroy ---> 子destroyed---> 父destroyed

在父组件中点击某条数据显示子组件详情时,由于父组件dom已经挂载完成,子组件dom也完成挂载渲染,所以不会重新渲染刷新。因此在点击详情传入参数后,需要重新初始化子组件

第一种:设置子组件的ref属性,通过$refs.dszx.initData()来初始化子组件

//设置ref属性
<consultEdit :getMainID='rowID' ref="dszx"></consultEdit>
//调用子组件初始化数据的方法
this.$refs.dszx.initData()
//初始化数据
initData(){
   //获取数据并重新赋值
}

第二种:使用父子组件间的通信,通过监听某个值的状态来决定是否初始化子组件

//父组件传参
<consultEdit :getMainID='rowID'></consultEdit>
//子组件接收参数,并监听此值变化,一旦变化则初始化数据
props:["getMainID"],
watch:{
        getMainID(newVal,oldVal){
            this.initData()
        }
},

 

标签:初始化,updated,vue,传参后,beforeUpdate,initData,---,组件
From: https://www.cnblogs.com/liuyangjava/p/18065787

相关文章

  • vue3 监听鼠标点击拖动事件,移动端滑动事件,页面指针坐标事件
    PointerEventsAPI是Hmtl5的事件规范之一,它主要目的是用来将鼠标(Mouse)、触摸(touch)和触控笔(pen)三种事件整合为统一的API。Pointer指可以在屏幕上反馈一个指定坐标的输入设备。PointerEvent事件和TouchEventAPI对应的触摸事件类似,它继承扩展了TouchEvent,因此拥有TouchEven......
  • Unity3D中刚体、碰撞组件、物理组件的区别详解
    Unity3D提供了丰富的功能和组件,其中包括刚体、碰撞组件和物理组件。这些组件在游戏开发中起着非常重要的作用,能够让游戏世界更加真实和有趣。本文将详细介绍这三种组件的区别以及如何在Unity3D中实现它们。对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也......
  • 基于vue+springboot高校宿舍管理系统
    本项目是一款基于springBoot的高校宿舍管理系统。本系统主要功能包含:(1)基本信息管理基本信息分为学生信息和宿舍信息两部分,其功能是负责维护这些信息,对它们进行增删查改等操作。宿舍分配管理(2)根据给定的宿舍信息与学生信息,按照一定的规则自动地给还未分配宿舍的学生分配宿舍,......
  • Vue学习笔记42--ref
    Vue==>refref属性被用来给元素或子组件注册引用信息(id的替代者)应用在html标签上获取的是真实的DOM元素,应用在组件标签上是组件实例对象(vc)使用方式:声明标识:<h1ref="xxx">。。。。。。</h1>或<Schoolref="xxx"></School>——School为组件获取方式:this.$refs.xxx......
  • vue项目实现PC端各分辨率适配
    最近做项目刚好用到pc端分辨率适配,在这里分享一下我的做法。1.先下载需要的插件包px2rem-loader、postcss-pxtoremnpminstallpx2rem-loadernpminstallpostcss-pxtorem@5.1.12.配置rem.js文件(名称自己随意取就可以),一般放置在utils文件夹里,没有就新建一个utils文件......
  • 在Chrome添加vue插件
    1.首先打开Chrome的开发者模式:(1)点击浏览器的"设置",再点击"扩展程序”:(2)或者直接点击浏览器右上角的扩展程序:打开右上角的“开发者模式”:2.在github下载vue插件,点击进入下载地址:https://github.com/vuejs/devtools3.依次点击下载:按需要浏览器(Chrome)下载:4.点击添加到......
  • Vue项目中封装axios统一管理http请求
    <divid="content_views"class="markdown_viewsprism-tomorrow-night"><svgxmlns="http://www.w3.org/2000/svg"style="display:none;"><pathstroke-lineca......
  • vue性能优化一(打包)
    1.依赖插件等无需每次打包都重新打包vite.config.js文件中配置exportdefault()=>{return{build:{sourcemap:false,manifest:true,rollupOptions:{output:{manualCh......
  • vuex
    3.VUEX原理图:3.1概念在Vue中实现集中式状态(数据)管理的一个Vue插件,对vue应用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方式,且适用于任意组件间通信。3.2何时使用?多个组件需要共享数据时1.多个组件依赖于同一状态2.来自不同组件的行为需要变更同......
  • Vue3学习(二十三)- 保存文档内容正常显示
    写在前面情人节已经接近尾声了,虽然跟我没什么关系,但是我还是很渴望,能遇到一个良人相伴一生。现在时间:内心异常平静,相对吵闹我更喜欢安静的晚上,没人打扰,enjoy自己独处的时间!保存内容显示1、任务拆解读取已保存内容将读取内容在富文本里显示2、读取已保存内容这个很好......