本文主要详细介绍了vue自定义组件的双向绑定。本文中的示例代码非常详细,具有一定的参考价值。有兴趣的朋友可以参考一下
#FormatStrongID_0#
我们比较了父组件和子组件之间的常见交互方式:
父组件通过道具将数据流入子组件;
子组件通过$emit将更新后的数组发送给父组件;
今天我们用另一种方式实现交互,参考输入框的v型,实现自定义组件的双向数据绑定。
即当父组件的值改变时,子组件的值也改变;相反,子组件的值会改变,父组件的值也会改变
#FormatStrongID_1#
由于道具的属性值不能直接修改,我们在这里定义valueData,监听实时接收值,点击方法修改valueData。
这里注意,模型语法中的sugar prop是收到的props属性值,是一致的。事件是首先传递的事件名称。
代码如下:
模板
差异
Div{{ `子组件值: ${value}` }}/div
Div @click='click '单击此处修改值/div
/div
/模板
剧本
导出默认值{
名称: ' ',
型号: {
prop: '值':
事件:“变更”
},
props: {
数值:数字
},
组件: {},
data() {
返回{
valueData: ' '
};
},
watch: {
值(新值,旧值){
this . value data=new value;
Console.log(`子组件值:$ { NewValue } `);
}
},
created() {
},
已安装(){
},
methods: {
单击(){
this.valueData
这个。$emit('change ',this . value data);
}
}
};
/script
style lang='less '范围
/style
#FormatStrongID_2#
父组件通过v-model绑定文本值,名称不一定是值,而是任何其他符合命名标准的字符串,这里是文本。
在子组件通过更改事件更新数据后,v模式绑定值会发生更改。
或者在父组件修改了文本值之后,子组件的值也随之改变。
代码如下:
模板
差异
Div{{ `父组件值:${text}` }}/div
Div @click='click '单击此处修改值/div
跨度/跨度
测试儿童v-model=' text '/测试儿童
/div
/模板
剧本
从“@/view/TestChildren”导入TestChildren;
导出默认值{
名称: ' ',
组件: { TestChildren },
data() {
返回{
文本: 1
};
},
created() {
},