猿问

什么时候用组件的.sync修饰符,什么时候用自定义组件的v-model,两者有什么区别?

先看.sync 的官方定义

再来看v-model

https://img4.mukewang.com/5c9dd64e00010dd808000597.jpg

两者要实现的目的都是一样,子组件和外部数据同步,双向绑定


杨魅力
浏览 1268回答 4
4回答

繁星淼淼

v-model只能有一个。个人理解,别的就是语义的区别了,prop.sync表示这个子组件会修改父组件的值,v-model表示这是个表单类型的组件。

慕慕森

v-modelv-model&nbsp;绑定的是 value , 语义上是指绑定组件的值, 如&nbsp;el-input&nbsp;的&nbsp;v-model&nbsp;就是指输入的值,.sync.sync&nbsp;只是一个双向绑定的语法糖,是指允许子组件内部修改父组件的状态。 如<el-dialog :visible.sync='dialogVisible'></el-dialog>&nbsp;就只是说,组件el-dialog&nbsp;的visible&nbsp;状态可以被组件内部改变。两者共同点是都是双向绑定元素,不同点是&nbsp;v-model&nbsp;双向绑定的是value,&nbsp;.sync&nbsp;可以双向绑定任何属性(prop)综上,其实就是说,如果一个组件需要双向绑定的属性,它有值么? 有就用&nbsp;v-model, 如el-input&nbsp;的值可能是用户输入的字符串,&nbsp;el-form&nbsp;的值可能是&nbsp;a=b&c=d, 也有可能是&nbsp;{ a:'b', c:'d' }如果没有值,如一个对话框el-dialog&nbsp;只有显隐状态(visible.sync),没有值(当然,如果你认为它有值,那也可以用v-model)。

潇潇雨雨

v-model一般是表单组件,绑定的是value属性,这个值的双向绑定也不是父组件和子组件的关系,而是view和model的对应关系,因为表单组件的值的变化来自于用户输入而sync是指父子组件之间的通信
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答