ElementPlus Dialog 对话框点击不弹出

本文介绍了如何将使用JavaScript编写的Vue2 Dialog组件迁移到Vue3,并确保数据响应式。重点在于理解TS语法和Vue3的ref处理,以解决弹窗不显示的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在写项目的途中使用了 Dialog弹窗,去官网查看时发现官网的语言是用的 typescript,而我用的是JavaScript 后边在w3c找到用JavaScript的参考代码

<template>
  <el-button type="text" @click="dialogVisible = true">点击打开 Dialog</el-button>

<el-dialog
  title="提示"
  v-model="dialogVisible"
  width="30%"
  :before-close="handleClose"
>
  <span>这是一段信息</span>
  <template #footer>
    <span class="dialog-footer">
      <el-button @click="dialogVisible = false">取 消</el-button>
      <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
    </span>
  </template>
</el-dialog>
</template>

<script>
  export default {
    data() {
      return {
        dialogVisible: false,
      }
    },
    methods: {
      handleClose(done) {
        this.$confirm('确认关闭?')
          .then((_) => {
            done()
          })
          .catch((_) => {})
      },
    },
  }
</script>

这用的是vue2 的语法,我用的是vue3 然后我进行了修改,如下

export default {
  setup() {
    let dialogVisible = false
    function handleClose(done) {
      this.$confirm('确认关闭?')
        .then((_) => {
          done()
        })
        .catch((_) => {})
    }
    return {
      handleClose,
      dialogVisible
    }
  }
}

渲染出来后,怎么点击都没弹窗出现,后仔细查看代码发现没有将dialogVisible边成响应式数据,

后边用ref函数处理数据后就可以正常弹窗

let dialogVisible = ref(false)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值