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

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

  .sync

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

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

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

父组件中 
<Child v-model="price" v-model:username="username"></Child>
子组件中
<script setup>
const props = defineProps({
modelValue: {
type: Number,
},
username: {
type: String,
default: ''
}
}) const emits = defineEmits(['update: modelValue', 'update: username'])
</script> <div
class="dialog-wrapper"
ref="dialogWrapper"
v-show="modelValue"
@click.self="closeDialog4Modal"
:style="{ background: !modal ? 'transparent' : '' }"
> 事件触发是 emit('update:modelValue', 2000)
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. appium程序下载安装/appium desktop

    官网地址:http://appium.io/ 点击下载按钮 默认跳转到最新版本,点击 Releases 回到版本列表页 该页可以看到对应的版本及更新时间,(最好不要下载最新版本) 如果是 Window ...

  2. linux Usb serial console

    ubuntu Usb serial console 能够把下电时打印输出到串口上,可以记录,而netconsole只能输出下电到disk 之前的打印 Usb串口线,ftdi或pl2303都可以 如果是 ...

  3. vue 项目打包 遇到问题 npm run build 无法打包

    npm run build 打包 直接报错!!! 发现package.json中build的打包后边多了一个:prod 因此打包直接使用  npm run build:prod

  4. 【NumPy】Python将数组中低于一定百分比的值替换

    情景举例 现有一个一维数组(或二维进行遍历)存放着很多,找到低于中位数20%的值并将小于该值的数全部替换为该值. 涉及方法 np.median(data, axis=0)用于计算数组中元素的中位数(中 ...

  5. 项目引入fastclick 导致ios中input需要多次点击才能触发focus

    main.js中引入之后的修改 import FastClick from "fastclick"; FastClick.prototype.focus = function (t ...

  6. GIS介绍(详细)一、什么是GIS?

    其他GIS空间分析文章 博主的参考书籍是科学出版社的地理信息系统原理(华一新.赵军喜等) 一.什么是GIS? 要说明什么是GIS,我们就得学习其基本术语,从而引出GIS的定义: 1.信息 狭义的信息论 ...

  7. 2003031126-石升福-python数据分析第四周作业-第二次作业

    项目 matplotlib 博客名称 2003031126-石升福-Python数据分析第四周作业 班级链接 20级数据班 作业链接 第二次作业 要求 每道题要有题目,代码(使用插入代码,不会插入代码 ...

  8. WEB应用中配置和使用springIOC容器是成功的

    Sring web应用学习(1)https://www.cnblogs.com/xiximayou/p/12172667.html

  9. Android 自定义SeekBar (二)

    一.前言 本文在 上节 的基础上,讲解自定义拖动条的实现思路. 二.思路 先在res/values文件夹下,自定义控件属性: <?xml version="1.0" enco ...

  10. sql年、季度、月的第一天

    SELECT dateadd(yy,datediff(yy,0,getdate()),0) select dateadd(qq,datediff(qq,0,getdate()),0) select d ...