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
}
相关推荐
前端大卫27 分钟前
Vue 和 React 受控组件的区别!
前端
Hy行者勇哥1 小时前
前端代码结构详解
前端
练习时长一年1 小时前
Spring代理的特点
java·前端·spring
水星记_1 小时前
时间轴组件开发:实现灵活的时间范围选择
前端·vue
麦麦大数据2 小时前
vue+Django 双推荐算法旅游大数据可视化系统Echarts mysql数据库 带爬虫
数据库·vue.js·django·可视化·推荐算法·百度地图·旅游景点
2501_930124702 小时前
Linux之Shell编程(三)流程控制
linux·前端·chrome
潘小安2 小时前
『译』React useEffect:早知道这些调试技巧就好了
前端·react.js·面试
@大迁世界3 小时前
告别 React 中丑陋的导入路径,借助 Vite 的魔法
前端·javascript·react.js·前端框架·ecmascript
EndingCoder3 小时前
Electron Fiddle:快速实验与原型开发
前端·javascript·electron·前端框架
EndingCoder3 小时前
Electron 进程模型:主进程与渲染进程详解
前端·javascript·electron·前端框架