vue2与vue3使用emit传值,v-model和.sync的区别

一、v-model和.sync的区别

我们下面的例子只有一个双向绑定值其实是可以使用input的

.sync与v-model区别是
相同点:都是语法糖,都可以实现父子组件中的数据的双向通信。
区别点:格式不同。 v-model="num"    v-model: @input + value:num.sync="num"   :num.sync: @update:numv-model只能用一次,子组件只能用一次v-model双向绑定使用: $emit('input',父级监听到的值)例如:<userAvatar v-model="user.avatar" />.sync可以有多个,子组件可以用.sync双向绑定很多次使用:$emit('update:变量名',父级监听到的值)例如:<userAvatar :avatar.sync="user.avatar" :avatar1.sync="user.avatar1" :avatar2.sync="user.avatar2"/>v-model只能用一次,如果还要绑定别的双向绑定要用.async,
.async和v-model是可以同时使用的
<userAvatar v-model="user.avatar" :avatar.sync="user.avatar" :avatar1.sync="user.avatar1" :avatar2.sync="user.avatar2"/>

 二、vue2写法

父组件:
<template><div class="text-center">//第一步:绑定值<userAvatar :avatar.sync="user.avatar" /></div>
</template>
<script>//第二步:引入组件import userAvatar from "./userAvatar";export default {//第三步:注册组件components: { userAvatar},data() {return {//第四步:声明绑定值user: {avatar:''},};},
</script>
子组件:
<template><div><div class="user-info-head" @click="editCropper()">//第五步:绑定子组件里的值<imgv-bind:src="options.img"title="点击上传头像"class="img-circle img-lg"/></div><el-button type="primary" size="small" @click="uploadImg()">提 交</el-button>
</template>
<script>
export default {data() {//第六步:声明绑定值options: {img:'', }}methods: {uploadImg() {//第七步:子组件使用$emit传值this.$emit('update:avatar', this.options.img);}}
}

三、vue3写法

父组件:
<template><div class="text-center">//第一步:v-model绑定子组件的值<userAvatar  v-model:avatar="state.user.avatar"/></div>
</template>
<script setup name="Profile">
//第二步:引入组件
import userAvatar from './userAvatar'
//第三步:声明
const state = reactive({user: {},
})
</script>
子组件:
<template><div class="user-info-head" @click="editCropper()">//第四步:绑定值<img :src="options.img" title="点击上传头像" class="img-circle img-lg" /></div> <el-button type="primary" @click="uploadImg()">提 交</el-button></template>
<script setup>
//第五步:(有时候需要引入defineEmits)
import {defineEmits} from 'vue'
//第六步:声明emit
const emit = defineEmits(['update:avatar'])
function uploadImg() {// 第七步:使用emitemit('update:modelValue', options.img)
}
</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/48828.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Golang 面试基础题】每日 5 题(二)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/UWz06 &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏…

uniapp判断h5/微信小程序/app端+实战展示

文章目录 导文使用条件编译的基本语法常见的平台标识符示例实战展示使用场景举例注意事项 导文 这里是导文 当你在开发Uni-app时&#xff0c;需要根据不同的平台&#xff08;比如App端、H5端、微信小程序等&#xff09;来执行不同的代码逻辑&#xff0c;可以使用条件编译来实现…

使用Fiddler进行Android和IOS抓包

Android抓包 要使用Telerik Fiddler Classic捕获Android设备的网络流量&#xff0c;您需要执行以下步骤&#xff1a; 在Fiddler Classic上进行设置&#xff1a; 确保已安装并使用BouncyCastle作为证书生成器。较新的Android版本会拒绝有效期超过两年的证书&#xff0c;目前只…

微信小程序开发--点击圆圈小问号弹注解tip 点击其他区域关闭(组件 w-tip 弹框在小圆圈的 上下左右 可以自己控制 )

引言 在微信小程序开发中&#xff0c;实现用户交互的多样性是提升用户体验的关键之一。本文将详细介绍如何在微信小程序中实现点击圆圈小问号弹出注解&#xff08;Tip&#xff09;的功能。这种功能常见于帮助信息、提示说明等场景&#xff0c;能够为用户提供即时的帮助和反馈。…

GitHub敏感信息扫描工具

目录 功能设计 技术实现 程序使用 文件配置 下载地址 功能设计 GitPrey是根据企业关键词进行项目检索以及相应敏感文件和敏感文件内容扫描的工具,其设计思路如下: 根据关键词在GitHub中进行全局代码内容和路径的搜索(in:file,path),将项目结果做项目信息去重整理得到…

C语言迷宫

目录 开头程序程序的流程图程序输入与输出的效果结尾 开头 大家好&#xff0c;我叫这是我58。今天&#xff0c;我要来看我用C语言编译出来的迷宫游戏。 程序 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <Windows.h> void printmaze(char s…

若依前后端获取当前用户

后端 Autowired private TokenService tokenService;LoginUser loginUser tokenService.getLoginUser(); sysInquiry.setCreateBy(loginUser.getUsername()); sysInquiry.setCreateTime(DateUtils.getNowDate()); 前端 获取使用 const nickName this.$store.state.user.nick…

每日OJ_牛客_DD5 进制转换

目录 牛客_DD5 进制转换 解析代码 牛客_DD5 进制转换 进制转换_牛客题霸_牛客网 解析代码 本题题目很简单&#xff0c;题目的本意就是将10进制的数转换成N进制。N(2 ≤ N ≤ 16)可以看出进制最多可以到16进制。 首先想清楚原理&#xff1a;N进制数&#xff0c;每个进制位的值…

【Js】获取当前日期时间

日期基本数据&#xff1a; var myDate new Date(); //Date 对象会自动把当前日期和时间保存为其初始值 myDate.getYear(); //返回当前年份(2位)&#xff1b;请使用 getFullYear() 方法代替 myDate.getFullYear(); //返回完整的年份(4位,1970-????) myDate.getMonth();…

Hands-On 基于 Flagchip FC7300 MCAL-PWM 驱动 RGB

本文将详细介绍如何使用 EB 工具配置 Flagchip FC7300 MCAL PWM 驱动 RGB&#xff0c;并重点强调了配置 pwm 模块的过程以及对pwm 模块的详细解释。本次示例演示将会使用 FTU1_CH1、FTU1_CH3、 FTU1_CH5 通道来驱动 RBG 灯点亮。 查看原文请点此&#xff1a; 硬件平台&…

STM32测测速---编码电机读取速度的计算

1、首先先了解一下计算的公式 速度计算&#xff1a; 轮胎每转一圈的脉冲数取决于编码器的分辨率&#xff0c;可由下面公式进行计算&#xff1a; PPR是电机的线数 以GA25-370电机为例。 图片来源&#xff1a;第四节&#xff1a;STM32定时器&#xff08;4.JGA25-370霍尔编码器…

XGBoost算法—Python实现

XGBoost&#xff08;eXtreme Gradient Boosting&#xff09;是一个优化的分布式梯度增强库&#xff0c;旨在实现高效、灵活和便携的机器学习算法。以下是关于XGBoost的详细解析&#xff1a; 一、定义与背景 定义&#xff1a;XGBoost是一个在梯度提升&#xff08;Gradient Boo…

Docker部署kafka,Docker所在宿主机以外主机访问

# 安装启动zookeeper docker run -d --name zookeeper --publish 2181:2181 --volume /etc/localtime:/etc/localtime zookeeper:latest --network 指定的网络 -p&#xff1a;设置映射端口&#xff08;默认2181&#xff09; -d&#xff1a;后台启动 # 启动kafka docker run -d…

【深度学习】sdxl的Lora训练技巧

在进行SDXL LoRA训练时&#xff0c;有一些技巧和最佳实践可以帮助你获得更好的结果。以下是一些重要的建议&#xff1a; 图像选择与标注&#xff1a; 选择多样化的高质量图像是关键&#xff0c;建议至少使用30到50张分辨率为1024x1024的图像【8†source】【9†source】。使用Vi…

【Linux网络】套接字编程

本篇博客整理了 socket 套接字编程的相关内容&#xff0c;包括 socket 网络通信原理、socket 相关的系统调用接口等&#xff0c;分别演示了基于UDP协议、TCP协议的 socket 网络编程&#xff0c;旨在让读者更加深入理解网络通信原理和设计&#xff0c;对网络编程有初步的认识和掌…

OpenAI发布“最具性价比”模型 GPT-4o mini,GPT-3.5 Turbo 已成过去式

GPT-4o mini 相较于 GPT 3.5 在多个方面实现了显著的性能提升&#xff1a; 得分率提升&#xff1a;GPT-4o mini 在 MMLU&#xff08;一个涉及多种语言理解任务的基准测试&#xff09;上的得分率为 82%&#xff0c;优于 GPT-4&#xff0c;并且明显高于 GPT-3.5 2。 成本效益&am…

SpringBoot3 + Vue3 学习 Day 1

springboot 基础 和 注册接口的开发 学习视频基础SpringBoot 概述快速启动配置文件基本使用① application.properties② application.yml &#xff08;更好&#xff09; yml 配置信息的书写和获取yml 配置信息书写与获取 1 - Valueyml 配置信息书写与获取 2 - ConfigurationPr…

docker的学习(二):docker常用的高级技术总结

简介 docker的一些知识点的总结 UnionFS 分层&#xff0c;轻量级&#xff0c;高性能的文件系统&#xff0c;支持一层层的叠加功能来修改文件系统。 一次同时加载多个文件系统&#xff0c;把各层文件系统叠加起来&#xff0c;最终文件系统会包含所有底层的文件和目录&#xf…

大数据-38 Redis 高并发下的分布式缓存 Redis简介 缓存场景 读写模式 旁路模式 穿透模式 缓存模式 基本概念等

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; HadoopHDFSMapReduceHiveFlumeSqoopZookeeperHBaseRedis 章节内容 上一节我们完成了&#xff1a; HBase …

nginx的配置

nginx安装 sudo apt update sudo apt install nginx安装好后查看安装的nginx版本 nginx -vnginx命令 nginx查看配置&#xff1a; nginx -tnginx重新加载配置文件 nginx -s reload查看并加载 nginx -t && nginx -s reload###nginx的运行 查看nginx运行状态&#x…