Skip to content

Instantly share code, notes, and snippets.

@maou-shonen
Forked from ffxsam/Suspense.ts
Last active September 17, 2021 07:11
Show Gist options
  • Save maou-shonen/e35e96cb430dd8178c06c4ee79906e10 to your computer and use it in GitHub Desktop.
Save maou-shonen/e35e96cb430dd8178c06c4ee79906e10 to your computer and use it in GitHub Desktop.
Vue 3's Suspense component, ready for use in Nuxtjs 2.x (TypeScript)
import Vue from 'vue'
export default Vue.extend({
name: 'Suspense',
render(createElement) {
const defaultVNode = this.$slots.default![0]
const isdefaultVNodeExist =
defaultVNode.elm !== undefined ||
defaultVNode.componentOptions !== undefined ||
defaultVNode.tag?.startsWith('vue-component')
if (isdefaultVNodeExist) {
return createElement('div', this.$slots.default)
} else {
return createElement('div', this.$slots.fallback)
}
},
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment