mirror of https://github.com/vuejs/core.git
parent
dfb271a293
commit
77a804b1d0
|
@ -729,4 +729,23 @@ describe('component props', () => {
|
||||||
|
|
||||||
expect(Object.keys(props.msg).length).toBe(1)
|
expect(Object.keys(props.msg).length).toBe(1)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
test('should warn against reserved prop names', () => {
|
||||||
|
const Comp = defineComponent({
|
||||||
|
props: {
|
||||||
|
key: String,
|
||||||
|
ref: String,
|
||||||
|
$foo: String,
|
||||||
|
},
|
||||||
|
render() {},
|
||||||
|
})
|
||||||
|
|
||||||
|
const root = nodeOps.createElement('div')
|
||||||
|
|
||||||
|
render(h(Comp, { msg: 'test' }), root)
|
||||||
|
|
||||||
|
expect(`Invalid prop name: "key"`).toHaveBeenWarned()
|
||||||
|
expect(`Invalid prop name: "ref"`).toHaveBeenWarned()
|
||||||
|
expect(`Invalid prop name: "$foo"`).toHaveBeenWarned()
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -586,7 +586,7 @@ export function normalizePropsOptions(
|
||||||
}
|
}
|
||||||
|
|
||||||
function validatePropName(key: string) {
|
function validatePropName(key: string) {
|
||||||
if (key[0] !== '$') {
|
if (key[0] !== '$' && !isReservedProp(key)) {
|
||||||
return true
|
return true
|
||||||
} else if (__DEV__) {
|
} else if (__DEV__) {
|
||||||
warn(`Invalid prop name: "${key}" is a reserved property.`)
|
warn(`Invalid prop name: "${key}" is a reserved property.`)
|
||||||
|
|
Loading…
Reference in New Issue