封装一个van-popup 组件
时间: 2023-08-08 21:07:15 浏览: 158
好的,我可以帮您封装一个van-popup组件。以下是代码示例:
```html
<template>
<van-popup v-model="show" :position="position" :style="{width: width}">
<div class="popup-content">
<slot></slot>
</div>
</van-popup>
</template>
<script>
import { Popup } from 'vant';
export default {
components: {
[Popup.name]: Popup
},
props: {
show: {
type: Boolean,
required: true
},
position: {
type: String,
default: 'center'
},
width: {
type: String,
default: '80%'
}
}
};
</script>
<style scoped>
.popup-content {
padding: 20px;
}
</style>
```
使用:
```html
<template>
<div>
<van-button @click="showPopup = true">显示弹出框</van-button>
<van-popup-component :show="showPopup" position="bottom" width="90%">
<div>这里是弹出框内容</div>
<van-button @click="showPopup = false">关闭</van-button>
</van-popup-component>
</div>
</template>
<script>
import VanPopupComponent from './VanPopupComponent.vue';
export default {
components: { VanPopupComponent },
data() {
return {
showPopup: false
};
}
};
</script>
```
这个组件是基于vant的Popup组件进行封装的,支持传入`show`、`position`、`width`三个参数,其中`show`是必传参数,用于控制弹出框的显示和隐藏。`position`用于控制弹出框的位置,可选值为`top`、`bottom`、`left`、`right`、`center`,默认值为`center`,`width`用于控制弹出框的宽度,默认值为`80%`。在组件内部,使用了`<slot>`来插入弹出框内容,可以方便地自定义弹出框的内容。
阅读全文