v-mode和.sync的对比

221 阅读1分钟

v-model与.sync的共同点

都是语法糖,都可以实现父子组件中的数据的双向通信

v-model与.sync的不共同点

v-model:

  1. 父组件 v-model="" 子组件@(input,value)
  2. 一个组件只能绑定一个v-model
  3. v-model针对更多的是最终操作结果,是双向绑定的结果,是value,是一种change操作

.sync:
1.父组件 :my-prop-name.sync=''子组件@update:my-prop-nam的模式来代替事件触发,实现父子组件的双向绑定
2.一个组件可以多个属性用.sync修饰符,可以同时"双向绑定多个“prop”
3..sync针对更多的是各种各样的状态,是状态的互相传递,是status,是一种update操作

[注意]:在Vue3中废弃了.sync,在Vue3中把Vue2的.sync的功能合并到v-model中,在Vue3中一个组件可以绑定多个v-model

Vue常用的修饰符

  1. v-on
    .stop - 调用event.stopPropagation().阻止事件冒泡。
    .prevent - 调用 event.preventDefault() .阻止事件事件。
    .native - 监听组件根元素的原生事件。(native在Vue.js官方的大致意思是自定义标签根标签的事件,将原生事件绑定到组件上,比如a标签可以直接绑定原生事件,但是如果你通过自定义封装了button标签,起成了名字myself-abutton,这时候绑定事件就需要加上native了)
    .once - 只触发一次

  2. v-bind
    .sync (2.3.0+)语法糖,会拓展一个更新父组件绑定的值 v-on侦听器

  3. v-model
    .number - 输入字符串转为有效数字
    .trim - 输入首尾空格过滤
    .lazy - 取代 input 监听 change事件