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. CH32F103C8T6的USB开发(一)

    一.背景 项目用到单片机采集模拟量数据,原先使用USB转串口,速度嫌慢,还要转串口芯片,电脑还要安装驱动,现更改为采用USB的HID类来传输. 二.单片机选型 STM32F103的USB接口简单易用, ...

  2. app内打开外部第三方瞎下载链接

    Q:我用cordova开发项目,想在app内跳转外部链接,安装了cordova-plugin-inappbrowser后确实可以跳转,但是跳转的页面有个按钮,原本点击会下载app,现在点击后毫无反应, ...

  3. 兼容url传参

    //兼容url传参            if(java.nio.charset.Charset.forName("ISO-8859-1").newEncoder().canEnc ...

  4. 将npm安装镜像切换到淘宝

    cnpm(推荐) 安装 pm install cnpm -g --registry=https://registry.npm.taobao.org 使用 cnpm install [xxxxxxx] ...

  5. 一种典型的不知循环次数的c语言循环问题

    问题如图 代码如下 1 #define _CRT_SECURE_NO_WARNINGS 1 2 #include<stdio.h> 3 int main() 4 { 5 puts(&quo ...

  6. 解决 vue init webpack 报错问题 报错原因是因为不能执行脚本文件。

    解决方案: 运行下面一行代码: set-ExecutionPolicy RemoteSigned 

  7. Python3网络爬虫--爬取有声小说(附源码)

    目录 一.目标 1.首页 2.网页源代码 二.爬取详情页 1.查看详情页 2.小说详情 3.小说简介 4.播放列表 三.爬取小说音频 1.确定数据加载方式 2.寻找真实音频播放地址 3.URL解码 4 ...

  8. python题mhy

    def save(s): f=open("test.txt","wt") f.write(s["name"]+"\n") ...

  9. 石子合并问题DP

    START: 2021-08-10 14:29:04 1.问题描述: 有N堆石子排成一排,每堆石子有一定的数量.现要将N堆石子并成为一堆.合并的过程只能每次将相邻的两堆石子堆成一堆,每次合并花费的代价 ...

  10. 关于css在html的三种使用方式

    关于css在html的三种使用方式 1.内联样式(直接在html里面使用style) eg:<h1 style="color:skyblue">这是一个测试标题< ...