feat(runtime-core): warn async data()
This commit is contained in:
parent
78977c3997
commit
3e7bb7d110
@ -15,7 +15,8 @@ import {
|
||||
isArray,
|
||||
EMPTY_OBJ,
|
||||
NOOP,
|
||||
hasOwn
|
||||
hasOwn,
|
||||
isPromise
|
||||
} from '@vue/shared'
|
||||
import { computed } from './apiComputed'
|
||||
import { watch, WatchOptions, WatchCallback } from './apiWatch'
|
||||
@ -316,6 +317,13 @@ export function applyOptions(
|
||||
)
|
||||
}
|
||||
const data = dataOptions.call(ctx, ctx)
|
||||
if (__DEV__ && isPromise(data)) {
|
||||
warn(
|
||||
`data() returned a Promise - note data() cannot be async; If you ` +
|
||||
`intend to perform data fetching before component renders, use ` +
|
||||
`async setup() + <Suspense>.`
|
||||
)
|
||||
}
|
||||
if (!isObject(data)) {
|
||||
__DEV__ && warn(`data() should return an object.`)
|
||||
} else if (instance.data === EMPTY_OBJ) {
|
||||
|
Loading…
Reference in New Issue
Block a user