Files
vue-ts-example/src/pages/VueMacros/ReusableTemplate.page.vue
mini2024 2b7186ef69
All checks were successful
/ depcheck (push) Successful in 2m19s
/ playwright (push) Successful in 1m45s
/ surge (push) Successful in 2m48s
/ build-and-deploy-to-vercel (push) Successful in 3m10s
chore: eslint 配置
2025-03-05 00:57:59 +08:00

39 lines
965 B
Vue

<script setup lang="ts">
import { createReusableTemplate } from '@vueuse/core';
const TemplateFoo = createReusableTemplate<
{ msg: string },
{
default: object;
slotNameee: {
slotPropName: string;
};
}
>();
</script>
<template>
<h1>Use Reusable Template</h1>
<TemplateFoo.define v-slot="{ $slots, msg }">
<div>Hello {{ msg.toUpperCase() }}</div>
<component :is="$slots.slotNameee" slotPropName="valueee" />
<component :is="$slots.default" />
</TemplateFoo.define>
<h2>TemplateFoo.reuse</h2>
<TemplateFoo.reuse msg="World" />
<h2>TemplateFoo.reuse with slotNameee(with props)</h2>
<TemplateFoo.reuse msg="Reusable">
<template #slotNameee="{ slotPropName }">
<div>Passing Slots,{{ { slotPropName } }}</div>
</template>
</TemplateFoo.reuse>
<h2>TemplateFoo.reuse with slot.default</h2>
<TemplateFoo.reuse msg="Reusable">
<div>Passing Slots.Default</div>
</TemplateFoo.reuse>
</template>