vue3的v-model在组件上几种用法

news/2024/9/24 22:12:32/

文章目录

      • 父组件
      • 1、@update和 : 拆开使用
      • 2、computed 计算属性方法
      • 3、defineModel (3.4+) 官方推荐
      • 4、TS泛型用法(3.3+)

父组件

<template><div><button @click="dialogVisible = !dialogVisible">打开/关闭</button><ModalComp v-model="dialogVisible" v-if="dialogVisible" /></div>
</template><script setup>
import ModalComp from './components/ModalComp.vue'const dialogVisible = ref(false)</script>

1、@update和 : 拆开使用

<template><el-dialog:modelValue="modelValue"@update:modelValue="$emit('update:modelValue', false)"title="Tips"width="800"draggable>哈咯啊</el-dialog>
</template><script setup>defineProps({modelValue: {type: Boolean,default: false}
})</script>

2、computed 计算属性方法

<template><el-dialogv-model="dialogVisible"title="Tips"width="800"draggable>哈咯啊</el-dialog>
</template><script setup>const props = defineProps({modelValue: {type: Boolean,default: false}
})
const emit = defineEmits(['update:modelValue'])const dialogVisible = computed({get: () => props.modelValue,set: (val) => emit('update:modelValue', val)
})</script>

3、defineModel (3.4+) 官方推荐

<template><el-dialogv-model="dialogVisible"title="Tips"width="800"draggable>哈咯啊</el-dialog>
</template><script setup>const dialogVisible = defineModel({ // 第一个参数'dialogVisible', 可选type: Boolean,required: true,default: false,
})</script>// 在vite.config.ts中配置 defineModel:true
export default defineConfig({plugins: [vue({script:{defineModel: true}}),vueJsx(),],
})

4、TS泛型用法(3.3+)

<script setup>const emit = defineEmits<{"update:modelValue":[value:boolean]
}>()//用法: emit('update:modelValue', val)
// 在v-model:count(指定字段)时,好用。</script>

http://www.ppmy.cn/news/1446386.html

相关文章

Windows系统下将MySQL数据库表内的数据全量导入Elasticsearch

目录 下载安装Logstash 配置Logstash配置文件 运行配置文件 查看导入结果 使用Logstash将sql数据导入Elasticsearch 下载安装Logstash 官网地址 选择Windows系统&#xff0c;需下载与安装的Elasticsearch相同版本的&#xff0c;下载完成后解压安装包。 配置Logstash配…

利用大型语言模型提升个性化推荐的异构知识融合方法

在推荐系统中&#xff0c;分析和挖掘用户行为是至关重要的&#xff0c;尤其是在美团外卖这样的平台上&#xff0c;用户行为表现出多样性&#xff0c;包括不同的行为主体&#xff08;如商家和产品&#xff09;、内容&#xff08;如曝光、点击和订单&#xff09;和场景&#xff0…

【javaWeb项目】基于网页形式,通过浏览器访问的java应用程序,就称为javaweb程序

JavaWeb前端 第一章 1、javaWeb是什么 //基于网页形式&#xff0c;通过浏览器访问的java应用程序&#xff0c;就称为javaweb程序2、web程序的分类 //1、静态web程序特点&#xff1a;网页上的内容是固定不变的&#xff0c;不能动态加载&#xff0c;例如web前端//2、动态web程序…

Git和SVN有什么区别?

Git和SVN都是版本控制系统&#xff0c;它们都是用来帮助团队协同开发&#xff0c;管理代码版本的。但是&#xff0c;git和svn在实现方式&#xff0c;使用方法&#xff0c;特性等方面都存在一些差异 分布式 vs 集中式 这是二者之间最大的区别。Git是分布式版本控制系统&#xff…

数据库管理工具

Heidisql HeidiSQL是一款简洁的图形化的数据库管理工具&#xff0c;支持MySQL、SQLServer、PostgreSQL、SQLite等多种数据库。HeidiSQL提供了一个用于在数据库浏览之间切换 SQL 查询和标签带有语法突出显示的简单易用的界面。其它功能包括BLOB 和 MEMO 编辑&#xff0c;大型SQ…

美国站群服务器常见的操作系统选项

美国站群服务器常见的操作系统选项 美国站群服务器是一种灵活且可扩展的服务器解决方案&#xff0c;可以用于托管和管理多个网站和应用程序。在选择合适的美国站群服务器时&#xff0c;一个重要的考虑因素是其支持的操作系统。本文将介绍美国站群服务器常见的操作系统选项&…

【云原生】Docker 实践(三):使用 Dockerfile 文件构建镜像

Docker 实践&#xff08;三&#xff09;&#xff1a;使用 Dockerfile 文件构建镜像 1.使用 Dockerfile 文件构建镜像2.Dockerfile 文件详解 1.使用 Dockerfile 文件构建镜像 Dockerfile 是一个文本文件&#xff0c;其中包含了一条条的指令&#xff0c;每一条指令都用于构建镜像…

创造未来知识管理新篇章:Ollama与AnythingLLM联手打造个人与企业的安全知识库!

一 Ollama 1.1 简介 Ollama是一个开源的大型语言模型服务工具,它帮助用户快速在本地运行大模型。通过简单的安装指令,用户可以执行一条命令就在本地运行开源大型语言模型,如Llama 2。Ollama极大地简化了在Docker容器内部署和管理LLM的过程,使得用户能够快速地在本地运行大…