v-model和.sync的区别

v-model(vue2)

1.弹窗 (直接v-model绑定父组件的值,这样一个v-model就能很轻松地控制弹窗显影

父组件

xml 复制代码
<button @click="() => (popShow = true)">显示弹窗<button>
<pop v-model:popControll="popShow">
<div>我是一个弹窗</div>
</pop>

子组件

javascript 复制代码
<div class="cover" :style="{display: value ? 'block' : 'none'}">
    <div> 
    <button>确定</button>
    <button> @click="hiddenPop">取消</button>
    </div>
</div>

    Props:{
        type:Booolea,
        default:false
    }
function hiddenPop() {
    emit("date:value",false)//注意:这里只能用value,可是在项目中,我们有时不一定定义为value
}

v-model(vue3)

父组件

xml 复制代码
<button @click="() => (popShow = true)">显示弹窗<button>
<pop v-model:popControll="popShow">
<div>我是一个弹窗</div>
</pop>

子组件

less 复制代码
<div class="cover" :style="{display: modelValue ? 'block' : 'none'}">
    <div> 
    <button>确定</button>
    <button> @click="hiddenPop">取消</button>
    </div>
</div>

let emit = defineEmits(["update:popConttroll"])
let { popControll } = defineProps({
    popControll:{
        type:Booolea,
        default:false
    }
})
function hiddenPop() {
    emit("update:modelValue",false)
}

.sync(只能在vue2用,vue3已废弃)

父组件

xml 复制代码
<buss :details.sync=list></buss>

这种写法等同于
<buss :details="list" @update:details="list=$event"></buss>

子组件

csharp 复制代码
    Props:{
        type:Booolea,
        default:false
    }
function hiddenPop() {
    emit("update:details",false)//注意update:是固定的,不强制要求value,这里是details
}
相关推荐
鹏程十八少2 分钟前
8. Android 深入插件化Shadow源码:揭秘插件Activity启动的完整链路(源码解析)
java·前端·面试
wuhen_n3 分钟前
Function Calling解剖:从请求到响应的完整数据流
前端·人工智能·ai编程
喝咖啡的女孩4 分钟前
多智能体任务可视化界面
前端
whisper5 分钟前
#新手必看!Map.size 和 Object.keys().length 的区别,看完再也不混淆
前端
秋天的一阵风8 分钟前
【LeetCode 刷题系列|第 3 篇】详解大数相加:从模拟竖式到简洁写法的优化之路🔢
前端·算法·面试
假面骑士阿猫10 分钟前
TRAE配置OpenSpec实现SDD规范驱动开发
前端·人工智能·代码规范
哈哈哈哈哈哈哈哈85313 分钟前
WSL + Tailscale 导致 apt update 卡 0% 的解决方案
前端
JYeontu14 分钟前
程序员都是这样剪视频的?
前端
小雨cc5566ru15 分钟前
基于Nodejs+vue+ElementUI的大学生课程排课管理系统设计
前端·vue.js·elementui
qq_84061223315 分钟前
Nodejs+vue+ElementUI框架的家政服务评价系统 保洁员预约系统的设计与实现
前端·vue.js·elementui