v-model的本质是父子组件间的通讯,父组件给子组件传递一个value自定义属性和input自定义事件;子组件接收value 并触发自定义事件修改value

  1. 父组件中
  2. <Child v-model="visible"></Child>
  3. <Child :value="visible" @input="visible = $event.target.value"></Child>
  4. 子组件中接收的两种方式
  5. 1
  6. props: {
  7. value: {
  8. type: Boolean,
  9. default: false
  10. }
  11. }
  12.  
  13. 关闭弹窗 this.$emit('input', false)
  14. 模版里面使用的变量是value
  15. <div
  16. class="dialog-wrapper"
  17. ref="dialogWrapper"
  18. v-show="value"
  19. @click.self="closeDialog4Modal"
  20. :style="{ background: !modal ? 'transparent' : '' }"
  21. >
  22.  
  23. 2)
  1. name: 'Dialog',
  2. model: {
  3. prop: 'visible', // 使用visible代替原来的value
  4. event: 'input' // 自定义emit触发的事件需和这个事件名保持一致
  5. },
  6. props: {
  7. visible: {
  8. type: Boolean,
  9. default: false
  10. }
  11. }
  12. 模版里面使用的话 就是visible
  13. <div
  14. class="dialog-wrapper"
  15. ref="dialogWrapper"
  16. v-show="visible"
  17. @click.self="closeDialog4Modal"
  18. :style="{ background: !modal ? 'transparent' : '' }"
  19. >

  .sync

父组件中
<Child :visible.sync="visible"></Child>
子组件中emit触发事件

this.$emit('update:visible', false);
 

 vue3.0中舍弃了.sync 只保留了 v-model 并且可以绑定多个v-model

  1. 父组件中
    <Child v-model="price" v-model:username="username"></Child>
  2. 子组件中
  3. <script setup>
  4. const props = defineProps({
  5. modelValue: {
  6. type: Number,
  7. },
  8. username: {
  9. type: String,
  10. default: ''
  11. }
  12. })
  13.  
  14. const emits = defineEmits(['update: modelValue', 'update: username'])
  15. </script>
  16.  
  17. <div
  18. class="dialog-wrapper"
  19. ref="dialogWrapper"
  20. v-show="modelValue"
  21. @click.self="closeDialog4Modal"
  22. :style="{ background: !modal ? 'transparent' : '' }"
  23. >
  24.  
  25. 事件触发是 emit('update:modelValue', 2000)
  26. emit('update:username', 'jk')

  

v-model 和 .sync的更多相关文章

  1. sync—WaitGroup

    用途:阻塞主线程的执行,直到所有的goroutine执行完成 WaitGroup总共有三个方法:Add(delta int),Done(),Wait().简单的说一下这三个方法的作用. Add:添加或 ...

  2. backbone库学习-model

    backbone库的结构: http://www.cnblogs.com/nuysoft/archive/2012/03/19/2404274.html 本文所有例子来自于http://blog.cs ...

  3. 【再探backbone 01】模型-Model

    前言 点保存时候不注意发出来了,有需要的朋友将就看吧,还在更新...... 几个月前学习了一下backbone,这段时间也用了下,感觉之前对backbone的学习很是基础,前几天有个园友问我如何将路由 ...

  4. backbone.Model 源码笔记

    backbone.Model backbone的model(模型),用来存储数据,交互数据,数据验证,在view里面可以直接监听model来达到model一改变,就通知视图. 这个里面的代码是从bac ...

  5. 什么是V模型?使用SDLC和STLC学习案例研究

    本教程详细介绍了软件/系统开发生命周期(SDLC),如瀑布循环和迭代循环,如RAID和Agile.此外,它继续解释测试的V模型和STLC(软件测试生命周期). 假设为您分配了一项任务,即为客户开发自定 ...

  6. 【原创】backbone1.1.0源码解析之Model

    趁热打铁,将Backbone.Model的源代码注释也发出来. Model是用来干嘛的?写过mvc的同学应该都知道,说白了就是model实例用来存储数据表中的一行数据(row) Backbone利用m ...

  7. Backbone Model 源码简谈 (版本:1.1.0 基础部分完毕)

    Model工厂   作为model的主要函数,其实只有12行,特别的简练 var Model = Backbone.Model = function(attributes, options) { va ...

  8. sync.Map(在并发环境中使用的map)

    sync.Map 有以下特性: 需要并发读写时,一般的做法是加锁,但这样性能并不高,Go语言在 1.9 版本中提供了一种效率较高的并发安全的 sync.Map,sync.Map 和 map 不同,不是 ...

  9. Golang Sync.WaitGroup 使用及原理

    Golang Sync.WaitGroup 使用及原理 使用 func main() { var wg sync.WaitGroup for i := 0; i < 10; i++ { wg.A ...

  10. 不可错过的效能利器「GitHub 热点速览 v.22.39」

    如果你是一名前端工程师且维护着多个网站,不妨试试本周榜上有名的 HTML-first 的 Qwik,提升网站访问速度只用一招.除了提升网站加载速度的 Qwik,本周周榜上榜的 Whisper 也是一个 ...

随机推荐

  1. 如何避免reblance

    reblance是什么? 什么时候会发生rebalnce? 如何尽量避免这些情况? 若不可避免的要发生reblance?怎么尽量减少影响? reblance是什么? Reblance是Kafka协调者 ...

  2. linux基础知识面试题

    Linux 开机启动过程 主机加电自检,加载 BIOS 硬件信息. 读取 MBR 的引导文件(GRUB.LILO). 引导 Linux 内核. 运行第一个进程 init (进程号永远为 1 ). 进入 ...

  3. [自用初学]c++的构造函数

    #include <stdio.h> #include <string.h> class Student { private: int id; char name[32]; p ...

  4. 【Appium_python】多进程启动时,没有设置间隔导致连接关闭,以及等待时间,导致用例未执行完成,服务提早关闭。

    多进程启动多设备时,没有设置间隔时间,appium服务器以为受到远程攻击,就自动关闭连接,导致服务启动失败, 解决方法:用time.sleep设置时间间隔 也需要增加等待时间,等待其他设备用例都执行完 ...

  5. 会话保持 Session和cookie

    Session是什么? Session在网络中称为会话控制,是服务器为了保护用户状态而创建的一个特殊的对象,简而言之,session就是一个对象,用于存储信息. Session有什么用? sessio ...

  6. 使用git钩子防止合并分支

    git是一款实用的版本管理工具,我们通过git init初始化一个git仓库,git会在当前目录为我们生成一个.git/目录,用来管理我们的版本文件信息. 在这个目录中有一个二级目录.git/hook ...

  7. Vue-数据代理

    Vue中的数据代理 数据代理定义 所谓数据代理,就是通过一个对象代理对另一个对象中的属性的操作(读/写).说白了就是操作一个对象上的属性可以读取和修改另一个对象上的属性,这种关系就叫做数据代理. 在V ...

  8. Floyd算法求最短路径

    floyd算法用于求图中各个点到其它点的最短路径,无论其中经过多少个中间点.该算法的核心理念是基于动态规划, 不断更新最短距离,遍历所有的点. 知识基础:图的邻接矩阵表示: 如图是一个简单图,从A开始 ...

  9. Array of products

    refer to: https://www.algoexpert.io/questions/Array%20Of%20Products Problem Statement Sample input A ...

  10. redis远程连接错误SocketTimeoutException: connect timed out

    redis远程连接错误SocketTimeoutException: connect timed out 解决方案: 编辑redis.conf文件(建议将其 先备份 编辑备份文件 启动redis服务时 ...