【Vue3】组件递归
- 实现效果
通过传入一个数字,实现数字次循环
- 父组件
<script setup>
import { ref } from "vue";
import RecursionMe from "./components/RecursionMe/index.vue";const level = ref(0);const add = () => level.value++;
</script><template><div><RecursionMe :level="level" @add="add" /></div>
</template>
- 子组件
<script>
export default {name: "RecursionMe", //给组件命名
};
</script><script setup>
import { defineEmits } from "vue";
const props = defineProps({level: Number,
});const emit = defineEmits(["add"]);const add = () => emit("add");
</script><template><div><div v-if="level === 0" class="over"><button @click="add">添加一层</button></div><div v-else class="box"><recursion-me :level="level - 1" @add="add" /></div></div>
</template><style scoped>
.over {width: 200px;height: 160px;background-color: aquamarine;
}
.box {display: inline-block;padding-right: 10px;padding-bottom: 10px;border-right: 1px solid red;border-bottom: 1px solid red;
}
</style>