App.vue 982 B

123456789101112131415161718192021222324252627282930313233343536
  1. <script setup lang="ts">
  2. import { ref } from 'vue'
  3. import VaporComp from './components/VaporComp.vue'
  4. import SimpleVaporComp from './components/SimpleVaporComp.vue'
  5. const msg = ref('hello')
  6. const passSlot = ref(true)
  7. const disabled = ref(true)
  8. </script>
  9. <template>
  10. <input v-model="msg" />
  11. <button class="toggle-vdom-slot-in-vapor" @click="passSlot = !passSlot">
  12. toggle #test slot
  13. </button>
  14. <VaporComp :msg="msg">
  15. <template #default="{ foo }">
  16. <div>slot prop: {{ foo }}</div>
  17. <div>component prop: {{ msg }}</div>
  18. </template>
  19. <template #test v-if="passSlot">A test slot</template>
  20. </VaporComp>
  21. <!-- teleport -->
  22. <div class="teleport">
  23. <div class="teleport-target"></div>
  24. <div class="render-vapor-comp">
  25. <button @click="disabled = !disabled">toggle</button>
  26. <Teleport to=".teleport-target" defer :disabled="disabled">
  27. <SimpleVaporComp />
  28. </Teleport>
  29. </div>
  30. </div>
  31. <!-- teleport end-->
  32. </template>