首页 > 其他分享 >语法糖(修饰符) - .sync

语法糖(修饰符) - .sync

时间:2023-07-03 14:33:39浏览次数:45  
标签:val 修饰符 sync 语法 num 组件 model

关于.sync

在了解这个语法糖时,首先我们要了解的是vue组件之间的通信规则是单向数据流即:

vue提倡单向数据流,即父级 props 的更新会流向子组件,但是反过来则不行。这是为了防止意外的改变父组件状态,使得应用的数据流变得难以理解。如果破坏了单向数据流,当应用复杂时,debug 的成本会非常高。

.sync的作用

实现父子组件数据之间的双向绑定, 与 v-model 类似.

区别: 在 Vue2中 一个组件上只能有一个v-model, 而 .sync 修饰符可以有很多个.

原理:

v-model 的原理

<com1 v-model="num"></com1>
// 等价于
<com1 :value="num" @input="(val)=>this.num=val"></com1>

.sync修饰符的原理

// 正常父传子: 
<com1 :a="num" :b="num2"></com1>
 
// 加上sync之后父传子: 
<com1 :a.sync="num" .b.sync="num2"></com1> 
 
// 它等价于
<com1 
  :a="num" @update:a="val=>num=val"
  :b="num2" @update:b="val=>num2=val"></com1> 
 
// 相当于多了一个事件监听,事件名是update:a,回调函数中,会把接收到的值赋值给属性绑定的数据项中。

总结

.sync 与 v-model 区别是

相同点:

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

区别点:

  • 格式不同: v-model="num" , :num.sync="num"
    v-model : @input + value
    :num.sync: @update:num
  • v-model只能用一次; .sync 可以有多个

标签:val,修饰符,sync,语法,num,组件,model
From: https://www.cnblogs.com/axingya/p/17522823.html

相关文章

  • [重要] try except语句的基本语法是什么?
    tryexcept语句的基本语法是什么?━━━━━━━━━━━━━━━━━━━━━━有时候我们写程序的时候,会出现一些错误或异常,导致程序终止.为了处理异常,我们使用try...except把可能发生错误的语句放在try模块里,用except来处理异常。except可以处理一个专门的异常,也可以处理一......
  • Markdown语法学习
    Markdown语法标题+空格为一级标题,#数量随级数递增最高六级字体Hello,World!粗体(两个*)Hello,World!斜体(一个*)Hello,World!斜体加粗(三个*)Hello,World!横线(两个~)引用(一个>+空格)分割线(三个-)(三个*)图片!+[图片名字]+(图片的路径/可以是本地地址/也可以是网络地址)超链......
  • java中多线程synchronized锁升级的原理是什么?
    在Java中,synchronized关键字用于实现线程之间的同步,确保多个线程对共享资源的访问是有序的。当一个线程获取到对象的锁时,其他线程将被阻塞,直到该线程释放锁。Java中的锁升级是指JVM对synchronized锁的优化过程。为了提高程序的性能,JVM使用了不同的锁状态。具体的锁状态如下:无锁状态......
  • [GPT] nodejs 有哪些类似 jquery 语法的 html 解析库
     在Node.js中,有一些类似jQuery语法的HTML解析库可供选择。 以下是其中几个常用的库:1.Cheerio:Cheerio是一个快速、灵活且易于使用的HTML解析库,它提供了类似于jQuery的语法和API。你可以使用Cheerio来在Node.js中解析和操作HTML文档。 2.jsdom:jsdom是一个基于Node.......
  • Python基础语法--课程笔记
    Smiling&Weeping----很难再爱上下一个春天只守着我的枯木 一等再等保留标识符:1.__*__代表系统定义函数的名字:__new__()  #创建新对象的函数__init__() #创建函数2.“_”在交互式执行中使用,代表计算结果,如......
  • go src - sync.Map
    前言在并发编程中,我们经常会遇到多个goroutine同时操作一个map的情况。如果在这种情况下直接使用普通的map,那么就可能会引发竞态条件,造成数据不一致或者更严重的问题。sync.Map是Go语言中内置的一种并发安全的map,但是他的实现和用法与普通的map完全不同,这篇文章将详细介绍这些区......
  • Rust async 关键字
    async观察代码:asyncfndd(a:i32)->i32{dbg!(a);2*a}异步方法内可以执行await,很显然上面的代码等价于下面两种形式:asyncfndd(a:i32)->i32{dbg!(a);async{2*a}.await}asyncfndd(a:i32)->i32{asyncmove{dbg!(a)......
  • rsync配置和使用+inotify实时同步
    1,rsync基本用法1.1问题 掌握远程同步的基本操作,使用rsync完成以下任务1,将目录/boot同步到目录/todir下2,将目录/boot下的文档同步到/todir下3,在目录/boot下新增文件a.txt,删除/todir下的子目录grub2,再次同步时/todir与/boot一致1.2方案本地同步操作rsync [选项]  本地目录1......
  • 复习ES(6-11)语法之ES6上篇
    目录ES6新的声明方式:let不属于顶层对象window不允许重复声明不存在变量提升暂时性死区块级作用域新的声明方式:const解构赋值数组解构对象解构字符串解构数组的各种遍历方式ES5中数组遍历方式ES6中数组遍历方式数组的扩展函数的参数扩展运算符与rest......
  • 比较实用的语法糖
    《从C++98到C++20,寻觅甜甜的语法糖们》这篇文章对《从C++98到C++20,寻觅甜甜的语法糖们》稍有改动find(bg,ed,val)返回指向第一个等于\(val\)的元素的指针。时间复杂度\(O(n)\)。后文所有序列操作的函数,都以\(n\)代指\(ed−bg\)。fill(bg,ed,val)......