props子组件定义的变量在父组件里没有,定义在哪里了,怎么传值的?
在子组件里定义了一个value变量,watch里可以监听到这个变量的变化。但是在父组件里没有找到定义这个变量,请问有可能定义在哪里了,是如何给子组件传值的?
回答:
一般来说 就是 <sub-component :value="value" />
这里绑定的 value
。
如果说是使用 v-model
双向绑定的,那其实就是等于说 :value="value" @input="value = $event"
这样的赋值,因为 v-model
本质上不过是前者的语法糖。
例如说一个自定义v-model
一般都会在子组件看到 model
比如说:
export default { name: 'SubComponent',
model: {
prop: 'checked',
event: 'change'
},
props:{
checked: Boolean
},
template: `
<input
type="checkbox"
v-bind:checked="checked"
v-on:change="$emit('change', $event.target.checked)"
>
`
}
那么就可以看到使用的是 props
下来的 checked
值作为绑定的值,并且通过 @change
事件去 emit
给父级。
本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
以上是 props子组件定义的变量在父组件里没有,定义在哪里了,怎么传值的? 的全部内容, 来源链接: utcz.com/p/933813.html