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
}
相关推荐
Dlrb12111 分钟前
C语言-字符串指针与函数指针
java·c语言·前端
PBitW6 分钟前
组件封装注意事项
前端·vue.js
weiggle11 分钟前
Android 输入事件分发流程:从物理触控到 Activity 的完整旅程
前端
yingyima15 分钟前
开发者必备在线工具集合 2025:实战案例解析
前端
前端毕业班16 分钟前
面试官:实现一个带类型约束的 EventEmitter
前端·面试
卷帘依旧19 分钟前
SPA 中的 Hash 和 History 模式
前端
用户44455436542623 分钟前
AndroidAutoSize使用时遇到的特麻烦bug
前端
茉莉玫瑰花茶27 分钟前
LangGraph 入门教程:构建 AI 工作流 [ 案例三 ]
前端·人工智能·python
scan72431 分钟前
pydantic格式输出
服务器·前端·javascript
ZC跨境爬虫37 分钟前
跟着MDN学HTML_day44:(ProcessingInstruction接口)
前端·javascript·ui·html·媒体