当前位置: 首页 > news >正文

uniapp中,当页面显示时触发子组件的重新渲染

  1. 使用watch监听数据变化
    在子组件中使用watch来监听父组件传递的数据,一旦数据发生变化,子组件就会重新渲染。

    子组件代码示例:

    <template><div>{{ message }}</div>
    </template><script>
    export default {props: {message: {type: String,default: ''}},watch: {message(newVal) {// 当父组件传递的message发生变化时,子组件重新渲染this.$forceUpdate();}}
    }
    </script>
    
  2. 使用$emit$on
    在父组件中改变数据后,通过$emit触发一个事件,然后在子组件中使用$on监听这个事件,并在事件处理函数中调用$forceUpdate()来强制子组件重新渲染。

    父组件代码示例:

    <template><child :message="message" @update="updateChild" />
    </template><script>
    import Child from '@/components/Child.vue';export default {components: {Child},data() {return {message: 'Hello'};},methods: {updateChild() {this.message = 'World'; // 改变数据触发子组件重新渲染}}
    }
    </script>
    

    子组件代码示例:

    <template><div>{{ message }}</div>
    </template><script>
    export default {props: {message: {type: String,default: ''}},mounted() {this.$root.$on('update', this.update);},methods: {update() {this.$forceUpdate(); // 强制重新渲染}},beforeDestroy() {this.$root.$off('update', this.update);}
    }
    </script>
    
  3. 使用v-ifv-show
    通过切换子组件的v-ifv-show条件,可以实现子组件的重新渲染。这种方法比较简单,但可能会导致组件频繁地销毁和重建。

    父组件代码示例:

    <template><child :message="message" v-if="showChild" @update="toggleChild" />
    </template><script>
    import Child from '@/components/Child.vue';export default {components: {Child},data() {return {message: 'Hello',showChild: true};},methods: {toggleChild() {this.showChild = !this.showChild; // 切换显示状态以重新渲染子组件}}
    }
    </script>
    
http://www.lryc.cn/news/351209.html

相关文章:

  • 先进制造aps专题五 aps软件的排程算法和优化算法介绍
  • 【跳坑日记】暴力解决Ubuntu SSH报错: Failed to start OpenBSD Secure Shell server
  • 从需求角度介绍PasteSpider(K8S平替部署工具适合于任何开发语言)
  • 线性三角化
  • Golang os.Rename invalid cross-device link的原因
  • Flutter 中的 Badge 小部件:全面指南
  • Java 多线程抢红包
  • 【PB案例学习笔记】-08 控件拖动实现
  • 读书笔记整理
  • uniapp蓝牙打印图片
  • Ajax用法总结(包括原生Ajax、Jquery、Axois)
  • LeetCode 题解:112. 路径总和,递归,JavaScript,详细注释
  • Spring (15)Spring Boot的自动配置是如何工作的
  • 【机器学习】—机器学习和NLP预训练模型探索之旅
  • 54. UE5 RPG 增加伤害类型
  • llama3 微调教程之 llama factory 的 安装部署与模型微调过程,模型量化和gguf转换。
  • C++三剑客之std::any(二) : 源码剖析
  • 【C语言】8.C语言操作符详解(2)
  • vivado 物理约束KEEP_HIERARCHY
  • Linux 三十六章
  • ntsd用法+安装包
  • Nacos 微服务管理
  • Kubernetes集群上的Etcd备份和恢复
  • 创建型模式 (Python版)
  • ​​​【收录 Hello 算法】9.4 小结
  • MYSQL数据库基础语法
  • R实验 参数检验(二)
  • 【Linux】进程信号及相关函数/系统调用的简单认识与使用
  • Spring (14)什么是Spring Boot
  • 区间预测 | Matlab实现CNN-KDE卷积神经网络结合核密度估计多置信区间多变量回归区间预测