如何通过监听 props 实现 Vue.js 中自定义弹窗的显示切换?

如何通过监听 props 实现 Vue.js 中自定义弹窗的显示切换?

通过监听 props 实现自定义弹窗显示切换

Vue.js 中,当使用 dialog 组件时,通过 visible prop 控制显示和隐藏。然而,在某场景下,希望通过修改 dialog 组件内的代码实现显示切换。

为了实现这一目标,需要监听 visible prop 的变化,并同步更新内部状态 visibleMe。当调用 closeDialog 方法时,将 visibleMe 设为 false,并通过 $emit 手动触发父组件的 update:visible 事件,将 visible 的值更新为 false。

修改后的 dialog 组件代码如下:

<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); // 触发 update:visible 事件,更新父组件的 visible
    },
  },
};
</script>

通过上述修改,仅需修改 dialog 组件的代码,即可通过监听 visible prop 实现自定义弹窗的显示切换。

以上就是如何通过监听 props 实现 Vue.js 中自定义弹窗的显示切换?的详细内容,更多请关注其它相关文章!