vue3关于.sync的用法
场景描述
我们都知道,子组件是不能够去修改父组件传递过来的数据。
因为如果子组件去修改父组件件传递过来的数据。
会导致数据的应用流向变得难以理解。
但是有些时候,我们需要当子组件的数据变化后,父组件的数据也跟着变化。
vue2中我们可以使用.sync来解决这个办法。
那么vue3应该怎么去处理这个问题了?
这个时候,应该怎办了?下面我们就来看一下怎么处理
父组件
<template>
<div>
<el-button type="primary" style="margin-left: 16px" @click="openHanlder">
open
</el-button>
<child v-model:drawer="drawer"></child>
</div>
</template>
<script>
import { defineComponent ,ref} from 'vue'
export default defineComponent({
setup() {
let drawer=ref(false)
const openHanlder=()=>{
drawer.value=true
}
return{
drawer,
openHanlder
}
}
})
</script>
子组件
<template>
<el-drawer
v-model="drawer"
title="I am the title"
direction="rtl"
>
<span>Hi, there!</span>
<el-button type="primary" style="margin-left: 16px" @click="closeHander">
关闭
</el-button>
</el-drawer>
</template>
<script lang="ts" >
import { ref,defineComponent } from 'vue'
import { ElMessageBox } from 'element-plus'
export default {
props:{
drawer:{}
},
setup(props,{emit}) {
const closeHander=()=>{
emit('update:drawer', false)
}
return {
closeHander
}
}
}

vue3.2中使用的是setup怎么处理了?
有的小伙伴说我vue中使用的setup怎么处理了,
别着急,马上写
父组件
<template>
<div>
<el-button type="primary" style="margin-left: 16px" @click="openHanlder">
open
</el-button>
<ChaCao v-model:drawer="drawer"></ChaCao>
</div>
</template>
<script lang="ts" setup>
import { ref} from 'vue'
let drawer=ref(false)
const openHanlder=()=>{
drawer.value=true
}
</script>
子组件
<template>
<el-drawer
v-model="drawer"
title="I am the title"
direction="rtl"
>
<span>Hi, there!</span>
<el-button type="primary" style="margin-left: 16px" @click="closeHander">
关闭
</el-button>
</el-drawer>
</template>
<script lang="ts" setup>
import { defineProps ,defineEmits} from 'vue'
import { ElMessageBox } from 'element-plus'
defineProps({
drawer:{
type:Boolean,
default:false
},
})
let $myemit=defineEmits(['update:drawer'])
const closeHander=()=>{
$myemit('update:drawer',false)
}
</script>
vue3关于.sync的用法的更多相关文章
- vue 3 学习笔记 (七)——vue3 中 computed 新用法
vue3 中 的 computed 的使用,由于 vue3 兼容 vue2 的选项式API,所以可以直接使用 vue2的写法,这篇文章主要介绍 vue3 中 computed 的新用法,对比 vue2 ...
- Vue3中插槽(slot)用法汇总
Vue中的插槽相信使用过Vue的小伙伴或多或少的都用过,但是你是否了解它全部用法呢?本篇文章就为大家带来Vue3中插槽的全部用法来帮助大家查漏补缺. 什么是插槽 简单来说就是子组件中的提供给父组件使用 ...
- go sync.once用法
欢迎关注go语言微信公众号 每日go语言 golang_everyday sync.once可以控制函数只能被调用一次.不能多次重复调用.示例代码: package main import ( &qu ...
- golang sync.Once用法
sync.Once能确保实例化对象Do方法在多线程环境只运行一次,内部通过互斥锁实现 Do方法 Once类型的Do方法只接收一个参数,参数的类型必须是func(),即无参数无返回的函数.该方法的功能并 ...
- vue3 深度选择器 scss用法
使用 :deep() 替换 ::v-deep .carousel { // Vue 2.0 写法 // ::v-deep .carousel-btn.prev { // left: 270px; // ...
- vue中.sync 修饰符
一直以来,都不太明白.sync的用法,归根结底原因在于,没有仔细阅读“.sync修饰符”. 正好,最近在拿一个项目练手,然后使用了elment-ui,然后在用到dialog的时候,属性visible是 ...
- cin详解(get()、getline()、clear()、sync())
简述 在C中,输入输出用scanf和printf,在输入数据的同时还需说明数据的类型,如果输入数据较多,那就很麻烦,而C++中也有相似的东西cin和cout,它们来自C++的一个名叫" io ...
- govendor用法
为什么使用govendor go语言的依赖管理最主要的是版本控制问题. govendor是Golang的依赖包管理工具,它的出现可以避免不同用户在clone同一个项目后从外部获取不同依赖库版本的问题. ...
- vue 3 学习笔记 (六)——watch 、watchEffect 新用法
选项式API与之前写法相同,本篇文章主要通过 Options API 和 Composition API 对比 watch 的使用方法,让您快速掌握 vue3 中 watch 新用法.建议收藏! 一. ...
- vue3中使用computed
演示示例(vant组件库的轮播图): <van-swipe :loop="false" :width="150" class="my-Swipe ...
随机推荐
- Java中观察者模式与委托,还在傻傻分不清
摘要:本文通过对比Java中观察者模式与委托,希望能够让开发者分清二者的区别和联系. 本文分享自华为云社区<Java中观察者模式与委托的对比>,作者: 小小张自由--张有博 . 代码背景 ...
- 华为云开源的Karmada正式成为CNCF首个多云容器编排项目
摘要:CNCF(云原生计算基金会)正式接纳由华为云贡献的多云容器编排项目Karmada,迎来CNCF首个多云容器编排项目. 北京时间9月15日,CNCF(云原生计算基金会)正式接纳由华为云贡献的多云容 ...
- Linux上非root用户jdk环境变量配置
1.设置用户环境变量vi .bash_profile 或者是 vi ~/.bashrc 2.JAVA_HOME=/home/sgmm/jdk1.6.0_13 CLASSPATH=$JAVA_HOME/ ...
- 在线一键生成安卓证书keystore 文件
在线一键生成安卓证书 keystore 文件 一般的打包工具都会有默认的安卓证书提供,但如果你需要上架需要用自己申请安卓证书 keystore 文件打包 apk 现有方便方便的工具,直接在网页就可以申 ...
- 数据分析引擎百花齐放,为什么要大力投入ClickHouse?
更多技术交流.求职机会.试用福利,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 近年来,OLAP产品的竞争日渐激烈,目前企业间流行的既有Impala.Greenplum等上一代较为成熟 ...
- SQL SERVER 查询所有表 统计每张表的大小
(MySQL查看数据库表容量大小)[https://www.cnblogs.com/vipsoft/p/12145059.html] 查询某数据库中的所有数据表 SELECT name as tabl ...
- Nginx 四层代理配置
四层代理比较方便.简单,nginx.conf 如下 #user nobody; worker_processes 1; #error_log logs/error.log; #error_log lo ...
- k8s-部署 Kubernetes 集群(kubeadm方式)
一 机器准备 IP 主机名 角色 配置 安装组件 192.168.198.150 master-1 master 2U2G master组件 etcd kubectl 192.168.198.151 ...
- 【JAVA基础】String处理
String处理 字符串查找子串及截取 // 保存的头像文件的文件名 String suffix = ""; String originalFilename = file.getO ...
- SpringCloud学习 系列四、微服务中心 Eureka介绍及创建一个Eureka中心服务
系列导航 SpringCloud学习 系列一. 前言-为什么要学习微服务 SpringCloud学习 系列二. 简介 SpringCloud学习 系列三. 创建一个没有使用springCloud的服务 ...