如何通过修改 dialog 组件代码,仅在组件内控制弹窗的显示?
自定义弹窗显示问题
如何通过修改 dialog 组件的代码,仅在组件内控制弹窗的显示?
解决方案
在 dialog 组件内,通过 data 属性和 watch 监听 v-if 中赋值的 visibleMe,同时监听父组件传递的 visible prop,并在 closeDialog 方法中同时更新 visibleMe 和触发 update:visible 事件,通知父组件更新 visible prop。
<template> <div v-if="visibleMe"> <!-- 内容 --> </div> </template> <script> export default { props: { visible: Boolean, }, data() { return { visibleMe: this.visible, // 初始 visibleMe 与 visible 一致 }; }, watch: { visible(newVal) { this.visibleMe = newVal; // 当父组件 visible 改变时更新 visibleMe }, }, methods: { closeDialog() { this.visibleMe = false; this.$emit('update:visible', false); // 通知父组件更新 visible }, }, }; </script>
这样一来,当父组件触发 closeDialog 方法时,dialog 组件会更新 visibleMe 并通知父组件更新 visible,从而满足仅通过修改组件代码即可控制弹窗显示和关闭的要求。
以上就是如何通过修改 dialog 组件代码,仅在组件内控制弹窗的显示?的详细内容,更多请关注其它相关文章!