vue3+ts+elment-plus,点击按钮显示弹窗,弹窗为单独写的自定义组件
时间: 2023-10-31 20:08:51 浏览: 275
基于vue3+ts+Element-plus二次封装基础组件文档;vue3基础组件文档.zip
好的,可以参考以下代码:
首先,我们需要在 Vue 中注册 Element Plus 组件库和自定义组件:
```typescript
import { createApp } from 'vue';
import ElementPlus from 'element-plus';
import 'element-plus/lib/theme-chalk/index.css';
import App from './App.vue';
import MyDialog from './components/MyDialog.vue';
const app = createApp(App);
app.use(ElementPlus);
app.component('my-dialog', MyDialog);
app.mount('#app');
```
然后,在模板中使用 Element Plus 的按钮组件,并为其绑定点击事件:
```html
<template>
<div>
<el-button @click="showDialog">打开弹窗</el-button>
<my-dialog v-model="dialogVisible"></my-dialog>
</div>
</template>
```
我们在 data 中声明一个变量 dialogVisible 表示弹窗是否显示,然后在点击事件中将其设置为 true:
```typescript
<script lang="ts">
import { defineComponent } from 'vue';
export default defineComponent({
data() {
return {
dialogVisible: false
};
},
methods: {
showDialog() {
this.dialogVisible = true;
}
}
});
</script>
```
最后,我们需要在自定义组件中定义一个 props 接收父组件传递的值,并在内部使用 Element Plus 的对话框组件实现弹窗效果:
```html
<template>
<el-dialog :visible.sync="visible">
<span>这是一个自定义弹窗</span>
</el-dialog>
</template>
<script lang="ts">
import { defineComponent, PropType } from 'vue';
export default defineComponent({
props: {
visible: {
type: Boolean as PropType<boolean>,
required: true
}
}
});
</script>
```
这样,我们就完成了在 Vue3 + TypeScript + Element Plus 中点击按钮显示自定义弹窗的操作。
阅读全文