热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

刷新子组件

用户点击查看,将编号传入,之后展示与编号相关的那条信息。但是子组件只创建一次,不刷新。导致点击不同的查看按钮,显示出来的di

在这里插入图片描述
用户点击查看,将编号传入,之后展示与编号相关的那条信息。
但是 子组件只创建一次,不刷新。导致 点击不同的 查看按钮,显示出来的dialog框中的内容都是第一次点击内容。

解决方案:
利用 v-if(销毁和重建)可以强制刷新子组件

<el-dialog title&#61;"查看" :visible.sync&#61;"dialogFormVisible" destroy-on-close>//需要销毁重建的组件<edit-form v-if&#61;"forceRefresh"></edit-form>
</el-dialog>//触发事件
handleNoAnswer(index, row) {//forceRefresh 变量需要在data&#xff08;&#xff09; 中申明一下this.forceRefresh &#61; falseconsole.log(index, row)console.log(row.id)localStorage.setItem("ArticleNO",row.id);//强制刷新this.$nextTick(() &#61;> {this.forceRefresh &#61; truethis.dialogFormVisible &#61; true})},

原理

Vue的重要概念&#xff1a;异步更新队列
Vue在观察到数据变化时并不是直接更新DOM&#xff0c;而是开启一个队列&#xff0c;并缓冲在同一事件循环中发生的所有数据改变。 Vue 异步执行 DOM 更新。只要观察到数据变化&#xff0c;Vue 将开启一个队列&#xff0c;并缓冲在同一事件循环中发生的所有数据改变。如果同一个 watcher 被多次触发&#xff0c;只会被推入到队列中一次。这种在缓冲时去除重复数据对于避免不必要的计算和 DOM 操作上非常重要。然后&#xff0c;在下一个的事件循环“tick”中&#xff0c;Vue 刷新队列并执行实际。

也就是说&#xff1a;Vue监听到数据变化但是不会立马直接更新试图&#xff0c;而是先建立一个队列&#xff0c;把跟这个数据有关的所有dom节点放进去&#xff0c;直到在下一个的事件循环“tick”中&#xff0c;Vue才 刷新队列并执行实际 (已去重的) 工作。重点来了&#xff0c;当所有dom 更新后&#xff0c;会触发nextTick回调函数。也就是说dom更新之后 nextTick&#xff08;&#xff09;被调用了&#xff01;

nextTick&#xff08;&#xff09;的作用是&#xff1a;将回调延迟到DOM 更新循环之后执行。在修改数据时立即使用它&#xff0c;然后等待 DOM 更新&#xff0c;便可达到获取 更新后的节点 的目的。

推荐阅读
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • 本文介绍了在Vue项目中如何结合Element UI解决连续上传多张图片及图片编辑的问题。作者强调了在编码前要明确需求和所需要的结果,并详细描述了自己的代码实现过程。 ... [详细]
  • 本文介绍了如何按需加载elementui的部分模块,以及如何设置覆盖某些属性。通过import引入Dialog模块,并使用Vue.component进行全局设置。同时使用Vue.use引入ElementUI和VueAxios模块。通过extends进行属性覆盖设置。 ... [详细]
  • 本文介绍了在使用vue和webpack进行异步组件按需加载时可能出现的报错问题,并提供了解决方法。同时还解答了关于局部注册组件和v-if指令的相关问题。 ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • Android工程师面试准备及设计模式使用场景
    本文介绍了Android工程师面试准备的经验,包括面试流程和重点准备内容。同时,还介绍了建造者模式的使用场景,以及在Android开发中的具体应用。 ... [详细]
  • 本文讨论了在Vue组件中,为什么data属性要返回一个函数的问题。通过示例代码,说明了对象变量和对象函数在数据更改前后的影响。 ... [详细]
  • Hibernate延迟加载深入分析-集合属性的延迟加载策略
    本文深入分析了Hibernate延迟加载的机制,特别是集合属性的延迟加载策略。通过延迟加载,可以降低系统的内存开销,提高Hibernate的运行性能。对于集合属性,推荐使用延迟加载策略,即在系统需要使用集合属性时才从数据库装载关联的数据,避免一次加载所有集合属性导致性能下降。 ... [详细]
  • Vue3中setup函数的参数props和context配置详解
    本文详细介绍了Vue3中setup函数的参数props和context的配置方法,包括props的接收和配置声明,以及未通过props进行接收配置时的输出值。同时还介绍了父组件传递给子组件的值和模板的相关内容。阅读本文后,读者将对Vue3中setup函数的参数props和context的配置有更深入的理解。 ... [详细]
  • 本文总结了在编写JS代码时,不同浏览器间的兼容性差异,并提供了相应的解决方法。其中包括阻止默认事件的代码示例和猎取兄弟节点的函数。这些方法可以帮助开发者在不同浏览器上实现一致的功能。 ... [详细]
  • 本文讨论了将HashRouter改为Router后,页面全部变为空白页且没有报错的问题。作者提到了在实际部署中需要在服务端进行配置以避免刷新404的问题,并分享了route/index.js中hash模式的配置。文章还提到了在vueJs项目中遇到过类似的问题。 ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
  • Vue基础一、什么是Vue1.1概念Vue(读音vjuː,类似于view)是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不 ... [详细]
  • x86 linux的进程调度,x86体系结构下Linux2.6.26的进程调度和切换
    进程调度相关数据结构task_structtask_struct是进程在内核中对应的数据结构,它标识了进程的状态等各项信息。其中有一项thread_struct结构的 ... [详细]
  • 用了element-ui的dialog组件加上canvas来绘图,在老版本 ... [详细]
author-avatar
措小爱2TU1984
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有