热门标签 | 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指令的相关问题。 ... [详细]
  • Android工程师面试准备及设计模式使用场景
    本文介绍了Android工程师面试准备的经验,包括面试流程和重点准备内容。同时,还介绍了建造者模式的使用场景,以及在Android开发中的具体应用。 ... [详细]
  • 本文讨论了在Vue组件中,为什么data属性要返回一个函数的问题。通过示例代码,说明了对象变量和对象函数在数据更改前后的影响。 ... [详细]
  • 一、什么是闭包?有什么作用什么是闭包闭包是定义在一个函数内部的函数,它可以访问父级函数的内部变量。当一个闭包被创建时,会关联一个作用域—— ... [详细]
  • 本文总结了在编写JS代码时,不同浏览器间的兼容性差异,并提供了相应的解决方法。其中包括阻止默认事件的代码示例和猎取兄弟节点的函数。这些方法可以帮助开发者在不同浏览器上实现一致的功能。 ... [详细]
  • 本文讨论了将HashRouter改为Router后,页面全部变为空白页且没有报错的问题。作者提到了在实际部署中需要在服务端进行配置以避免刷新404的问题,并分享了route/index.js中hash模式的配置。文章还提到了在vueJs项目中遇到过类似的问题。 ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
  • 一、路由首先需要配置路由,就是点击good组件进入goodDetail组件配置路由如下{path:goodDetail,component:goodDetail}同时在good组件中写入如下点击事件,路由中加入 ... [详细]
  • Vue基础一、什么是Vue1.1概念Vue(读音vjuː,类似于view)是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不 ... [详细]
  • x86 linux的进程调度,x86体系结构下Linux2.6.26的进程调度和切换
    进程调度相关数据结构task_structtask_struct是进程在内核中对应的数据结构,它标识了进程的状态等各项信息。其中有一项thread_struct结构的 ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
  • html5 localStorage的读取
    localStorage的读取if(!window.localStorage){alert(浏览器支持localstorage);}else{varstoragewindo ... [详细]
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社区 版权所有