Nuxt/docs/content/3.api/3.utils/define-nuxt-component.md
Yaël Guilloux dc47c64f14
docs: use nuxt 3 and website theme (#5479)
Co-authored-by: Daniel Roe <daniel@roe.dev>
Co-authored-by: Sébastien Chopin <seb@nuxtjs.com>
Co-authored-by: Pooya Parsa <pooya@pi0.io>
Co-authored-by: pooya parsa <pyapar@gmail.com>
Co-authored-by: Clément Ollivier <clement.o2p@gmail.com>
2022-10-06 11:15:30 +02:00

37 lines
1.0 KiB
Markdown

---
title: "defineNuxtComponent"
description: defineNuxtComponent() is a helper function for defining type safe components with Options API.
---
# `defineNuxtComponent`
`defineNuxtComponent()` is a helper function for defining type safe Vue components using options API similar to [defineComponent()](https://vuejs.org/api/general.html#definecomponent). `defineNuxtComponent()` wrapper also adds support for `asyncData` component option.
::alert{type=warning}
Options API support for `asyncData` may well change before the stable release of Nuxt 3.
::
::Alert
Using `<script setup lang="ts">` is the recommended way of declaring Vue components in Nuxt 3.
::
:ReadMore{link=/getting-started/data-fetching#options-api-support}
## `asyncData()`
If you choose not to use `setup()` in your app, you can use the `asyncData()` method within your component definition:
```vue [pages/index.vue]
<script lang="ts">
export default defineNuxtComponent({
async asyncData() {
return {
data: {
greetings: 'hello world!'
}
}
},
})
</script>
```