当前位置: 首页 > news >正文

使用useVModel简化 Vue 组件中 v-model 的实现

使用useVModel简化 Vue 组件中 v-model 的实现

  1. 基本原理
// VueUse的useVModel简化实现
function useVModel(props, propName, emit) {
  return computed({
    get: () => props[propName],
    set: (value) => emit(`update:${propName}`, value)
  })
}使用useVModel简化 Vue 组件中 `v-model` 的实现
  1. 具体应用
// 在子组件(BusDevDetail)组件中
const isShow = useVModel(props, "isDetailDrawerShow", emit);

// 等价于手动实现:
const isShow = computed({
  get: () => props.isDetailDrawerShow,
  set: (value) => emit("update:isDetailDrawerShow", value)
});
  1. 功能实现
<!-- 父组件 -->
...
<BusDevDetail v-model:isDetailDrawerShow="isDetailDrawerShow" />
...
<!-- 子组件 BusDevDetail.vue -->
<template>
	...
	<el-drawer v-model="isShow">
  	<!-- 抽屉内容 -->
	</el-drawer>
	...

    <template #footer>
      <div style="flex: auto">
        <el-button plain @click="cancel">取消</el-button>
      </div>
    </template>
</template>

<script>
...
const cancel = () => {
  isShow.value = false;
};
...
</script>
  1. 主要作用
  • 实现双向绑定:父组件的 isDetailDrawerShow 与子组件的 isShow 保持同步
  • 简化代码:不需要手动编写 get/set
  • 自动处理事件发射:当 isShow 改变时,自动触发 update:isDetailDrawerShow 事件
  1. 使用场景
  • 抽屉/对话框的显示隐藏控制
  • 表单输入的双向绑定
  • 任何需要父子组件数据同步的场景

相关文章:

  • 如何创建自定义权限的kubeconfig
  • springboot399-中文社区交流平台(源码+数据库+纯前后端分离+部署讲解等)
  • http状态码503之解决方法(Solution to HTTP Status Code 503)
  • 微信小程序通过http通信控制庐山派
  • [RabbitMQ] 常见面试题汇总 | 工作流程 | 消息可靠性 | 消息顺序性 | 幂等性 | 高级特性 | 延迟队列 | 仲裁队列 | 工作模式 | 消息积压 | 推拉模式
  • 实时图像与视频超分辨率:高效子像素卷积网络(ESPCN)解析
  • CLIP论文学习
  • 985本硕,网络安全方向,走算法还是走开发?
  • 【会议预告】人工智能与材料国际学术会议
  • 沃丰科技大模型标杆案例 | 索尼大模型智能营销机器人建设实践
  • 短视频矩阵碰一碰发视频源码技术开发,支持OEM
  • bypy的依赖库版本问题
  • STL —— 洛谷字符串(string库)入门题(蓝桥杯题目训练)(一)
  • Ubuntu24安装MongoDB(解压版)
  • 使用docker-compose运行服务
  • IM聊天系统架构实现
  • day12_调度和可视化
  • org.mortbay.jetty和org.eclipse.jetty的区别
  • 论文笔记:Scaling LLM Test-Time Compute Optimally can be More Effective than Scaling
  • 罗格科技发布全球首款税务智能合规终端“罗拉DeepTax双引擎AI一体机”
  • 男子不满和睦家医院手术效果还遇到了“冒牌医生”?院方回应
  • 大英博物馆展歌川广重:他是梵高最钟爱的浮世绘名家
  • 人民日报仲音:大力纠治违规吃喝顽瘴痼疾
  • 市场监管总局等五部门约谈外卖平台企业
  • 图讯丨习近平出席中国-拉美和加勒比国家共同体论坛第四届部长级会议开幕式
  • 权益类基金发行回暖,这些老将挂帅新基,谁值得买?