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

Vue中如何封装双向绑定的组件

简单以一个Checkbox为例:

// components/customCheckbox.vue
<template><div class="d-checkbox":class="{'disabled': disabled }"@click="toggle"><i class="icon-e790" v-if="modelValue"></i> <!-- 未选中图标 --><i class="icon-e789 checked" v-else></i> <!-- 选中图标 --><slot></slot></div>
</template><script lang="ts" setup>
// 定义props,接收v-model的值
const props = defineProps({modelValue: {type: Boolean,default: false},disabled: {type: Boolean,default: false}
});// 定义emit事件,用于更新v-model的值
const emit = defineEmits(['update:modelValue']);// 切换选中状态的方法
const toggle = () => {emit('update:modelValue', !props.modelValue);
};
</script><style lang="less">
.d-checkbox {position: relative;display: inline-block;width: 20px;height: 20px;cursor: pointer;> i{color: #dcdfe6;&.checked {color: var(--theme, #409eff);}}// 禁用状态&.disabled {cursor: not-allowed;opacity: 0.5;}// 鼠标悬停效果&:hover:not(.disabled) {.icon-e790 {color: #c0c4cc;}}
}
</style>

核心点为使用modelValue去接参。使用emit去向上级更新。

// 使用
import CustomCheckbox form "@/components/customCheckbox.vue"<CustomCheckbox v-model="params.status">状态</CustomCheckbox>
http://www.dtcms.com/a/406278.html

相关文章:

  • 个人网站建设与维护上传wordpress到空间
  • 深入剖析Spring Boot依赖注入顺序:从原理到实战
  • 对象关系映射(ORM)
  • 在VS Code 中为Roo Code 添加 Bright Data 的本地MCP服务器
  • 专业的制作网站开发公司wordpress界面404
  • Python Pillow库详解:图像处理的瑞士军刀
  • AI 时代的安全防线:国产大模型的数据风险与治理路径
  • Deepoc具身智能模型:为传统机器人注入“灵魂”,重塑建筑施工现场安全新范式
  • 鸿蒙NEXT安全控件解析:实现精准权限管控的新范式
  • 创建自己的网站广告图片
  • GraphRAG:引领自然语言处理进入深层语义分析新纪元
  • 免费的个人简历电子版seo怎么优化排名
  • 5、urbane-commerce 微服务统一依赖版本管理规范
  • 17.DHCP服务器及DNS服务
  • 如何在 Vue 中打印页面:直接用 web-print-pdf(npm 包)
  • 响应式网站内容布局网站开发团队成员介绍
  • PaintBoard+cpolar:云端画板的远程创作方案
  • 9月25日星期四今日早报简报微语报早读
  • 零基础学AI大模型之AI大模型可视化界面
  • 深圳建设工程项目网站沈阳网站模板建站
  • (二)3.1.9 生产“稳”担当:Apache DolphinScheduler Worker 服务源码全方位解析
  • Linux-01(Linux 基础命令)
  • 苹果群控系统的游戏运营
  • 英迈思做的网站怎么样建设网站时 首先要解决两个问题 一是什么
  • 风险网站如何解决办法关于加强公司 网站建设的通知
  • 7、revision 是 Maven 3.5+ 引入的现代版本管理机制
  • Maven入门:高效构建Java项目
  • Hadess入门到实战(2) - 如何管理Maven制品
  • maven pom文件中<dependencyManagement><dependencies><dependency> 三者的区别
  • Django数据库连接数超限问题分析与解决方案