在这里想说一说 Vue 给我们使用的两块语法糖,.sync 修饰符 和 v-model 指令

一、.sync 修饰符

子组件通过 props 收到来自父组件传递的值,当子组件想通知父组件值发生变化时,使用 $emmit 事件,父组件通过 .sync 自动更新值

  1. // 子组件
  2. this.$emit('update:dateSource',[...this.dataSource,name]);
  3. // 父组件
  4. <Tags :data-source="tags" @update:dateSource="tags=$event"/>

父组件简写成

  1. <Tags :data-source.sync="tags"/>

这块“语法糖”我使用失败了!!!

一、v-model

看 Vue 官方文档

image.png_

input 标签中,

  1. <label>
  2. <input v-model="message" placeholder="edit me">
  3. </label>
  4. <p>{{message}}</p>
  5. data(){return{
  6. message:''
  7. }
  8. }

它实际上是监听了标签的 input 事件中的 value,还原成以下方式效果是一样的

  1. <input value="message" @input="message=$event.target.value" placeholder="edit me">

.lazy 修饰符可以转换为监听 change 事件,在 change 事件触发后进行同步

「@浪里淘沙的小法师」