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
}
相关推荐
子兮曰1 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰1 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
前端小万1 天前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝1 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
A黄俊辉A1 天前
uniapp webview中实现 app和内嵌的H5双向通信
vue.js·json
三十而立洋1 天前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
卡布鲁1 天前
把一个 Vite + Vue3 应用塞进 qiankun (React + Umi3) 主站:十个坑的复盘
前端·javascript·react.js
honkun61 天前
vue 表格组件 vxe-table 配置 ajax 请求自动加载数据与表单查询
vue.js·vxe-table
kybs19911 天前
全球灾害数据分析可视化 毕业设计-附源码66794
vue.js·spring boot·mysql·安全·django·c#·asp.net
汉堡大王95271 天前
Jev:不是聊天机器人, 而是一个智能 if 语句
前端·人工智能·后端