<template>
	<view class="content" v-show="value">
		<slot></slot>
	</view>
</template>

<script>
	export default {
		props: {
			value: {
				type: Boolean,
				default: false
			},
		},
		watch: {
			value: {
				// 数据发生变化就会调用这个函数  
				handler(newVal, oldVal) {
					this.$nextTick(async()=>{
						console.log(await this.size())
					})
				},
				// 立即处理 进入页面就触发
				// immediate: true
			}
		},
		methods: {
			async size() {
				let res = await this.query(".content", this)
				return res.height
			},
			query(selector, that) {
				return new Promise(resolve => {
					let query = uni.createSelectorQuery()
						.in(that)
						.select(selector);
					query.boundingClientRect(res => {
						resolve(res)
					}).exec();
				})
			}
		},
	}
</script>

<style lang="scss" scoped>
	.content {
		max-height: 0;
		overflow: hidden;
		transition: max-height .5s linear;
		&.close{
			
		}
	}
</style>