wip: delete keys from props proxy when needed

This commit is contained in:
Evan You 2019-06-05 21:38:32 +08:00
parent d75d21c1a1
commit e9a3fa60d6

View File

@ -12,6 +12,7 @@ import {
} from '@vue/shared'
import { warn } from './warning'
import { Data, ComponentInstance } from './component'
import { FULL_PROPS } from './patchFlags'
export type ComponentPropsOptions<P = Data> = {
[K in keyof P]: Prop<P[K]> | null
@ -147,6 +148,18 @@ export function resolveProps(
attrs = props
}
// in case of dynamic props, check if we need to delete keys from
// the props proxy
const { patchFlag } = instance.vnode
if (propsProxy !== null && (patchFlag === 0 || patchFlag & FULL_PROPS)) {
const rawInitialProps = unwrap(propsProxy)
for (const key in rawInitialProps) {
if (!props.hasOwnProperty(key)) {
delete propsProxy[key]
}
}
}
// lock immutable
lock()