Vue3 v-model 指令用法详解

embedded/2024/9/23 20:49:50/

绑定单个 v-model 用法

父组件: 

<script setup lang="ts">import { ref } from "vue";import HomeView from "./views/HomeView.vue";let str1=ref('你好')
</script><template><div>父组件:{{ str1 }}</div><HomeView v-model="str1"></HomeView>
</template>

子组件: 

<script setup lang="ts">defineProps<{modelValue:string}>()const emit=defineEmits(['update:modelValue'])const func=()=>{emit('update:modelValue','我改变了父组件穿过来的值')}
</script><template><button @click="func">按钮</button><div>子组件:{{ modelValue }}</div>
</template> 

绑定多个 v-model 用法

父组件:

<script setup lang="ts">import { ref } from "vue";import HomeView from "./views/HomeView.vue";let str1=ref('你好')let str2=ref('测试')
</script><template><div>父组件-str1:{{ str1 }}</div><div>父组件-str2:{{ str2 }}</div><HomeView v-model="str1" v-model:inputVal="str2"></HomeView>
</template>

 子组件:

<script setup lang="ts">defineProps<{modelValue:stringinputVal:string}>()const emit=defineEmits(['update:modelValue','update:inputVal'])const func=()=>{emit('update:modelValue','我改变了父组件穿过来的值')}const valText=ref<string>('sdfsdf')const inputFunc=(e:Event)=>{const elementInput=e.target as HTMLInputElementemit('update:inputVal',elementInput.value)}
</script><template><button @click="func">按钮</button><div>子组件:{{ modelValue }}</div><input @input="inputFunc" type="text" v-model="valText" /><div>子组件:{{ inputVal }}</div>
</template>

绑定 v-model 并添加自定义修饰符用法

父组件: 

<script setup lang="ts">import { ref } from "vue";import HomeView from "./views/HomeView.vue";let str1=ref('你好')let str2=ref('测试')let str3=ref('早上好')
</script><template><div>父组件-str1:{{ str1 }}</div><div>父组件-str2:{{ str2 }}</div><div>父组件-str3:{{ str3 }}</div><HomeView v-model="str1" v-model:inputVal.myModifier="str2"></HomeView><HomeView v-model="str1" v-model:inputVal="str3"></HomeView>
</template>

子组件: 

<script setup lang="ts">const props=defineProps<{modelValue:stringinputVal:stringinputValModifiers?:{ // 这里 ? 表示修饰符可选myModifier:boolean}}>()const emit=defineEmits(['update:modelValue','update:inputVal'])const func=()=>{emit('update:modelValue','我改变了父组件穿过来的值')}const valText=ref<string>('input初始值')const inputFunc=(e:Event)=>{const elementInput=e.target as HTMLInputElementemit('update:inputVal',props?.inputValModifiers?.myModifier?elementInput.value+'添加了修饰符':elementInput.value)}
</script><template><button @click="func">按钮</button><div>子组件:{{ modelValue }}</div><input @input="inputFunc" type="text" v-model="valText" /><div>子组件:{{ inputVal }}</div>
</template> 

注:在 Vue3 中 v-model 是破坏性更新的,v-model 其实是一个语法糖,通过 props 和 emit 组合而成


http://www.ppmy.cn/embedded/101832.html

相关文章

TCP/UDP的对比,粘包分包抓包,http协议

服务器端&#xff1a; 一、loop 127.0.0.1本地回环测试地址 二、tcp特点 面向连接、可靠传输、字节流 粘包问题&#xff1a;tcp流式套接字&#xff0c;数据与数据之间没有套接字&#xff0c;导致可能多次的数据粘到一起 解决方法&#xff1a;&#xff08;1&#xff09;规…

QT接收并解析GPS模块串口数据

目录 一、QT读取串口数据 二、解析数据 目标&#xff1a; 使用QT&#xff0c;读取gps模块的串口数据&#xff0c;并解析其中的经纬高数据&#xff0c;然后进行处理 一、QT读取串口数据 变量定义 QSerialPort *serial; QSerialPortInfo SerialPortInfo; QByteArray lineData…

使用Python恢复Windows、Linux、MacOS回收站中的文件和目录

一、使用Python恢复Windows回收站中的文件和目录 import os import platformdef put_back_trash():# 获取操作系统类型os_type platform.system()if os_type "Windows": # Windowsfrom winshell import recycle_binfor item in recycle_bin():winshell.undelete(…

QGC地面站连接roslanch创建的仿真无人机

今天遇到這個情況&#xff0c;看了網上的方法依然沒有解決 QGC地面站无法连接roslanch创建的仿真无人机-问答专区-Amovlab阿木实验室-让机器人研发更高效&#xff01; - 問題的根源應該是沒有進入sitl的環境。這裏寫一下解決方法&#xff1a; 首先編譯 export Autopilot_DIR…

QT-五子棋游戏

QT-五子棋游戏 一、演示效果二、核心代码三、下载链接 一、演示效果 二、核心代码 #include "GameModel.h" #include <time.h> #include <stdlib.h>GameModel::GameModel(){}void GameModel::startGame(GameType type){gameType type;//初始化棋盤game…

小程序组件生命周期和获取组件实例

组件实例 1 selectComponent 方法概述 selectComponent 是微信小程序提供的一个 API&#xff0c;用于在页面或组件内部获取子组件的实例。通过获取组件实例&#xff0c;可以&#xff1a; 调用组件内部的方法&#xff1b;访问组件的内部数据&#xff1b;进行组件间的通信&…

2024河南省萌新联赛第(六)场 郑州大学

文章目录 2024河南省萌新联赛第&#xff08;六&#xff09;场 郑州大学A.装备二选一&#xff08;一&#xff09;题意&#xff1a;思路&#xff1a;AC代码&#xff1a; B.百变吗喽题意&#xff1a;思路&#xff1a;AC代码&#xff1a; C.16进制世界题意&#xff1a;思路&#xf…

Qt (11)【Qt窗口 —— 对话框 | Qt内置对话框简介】

阅读导航 引言一、对话框1. 对话框的分类&#xff08;1&#xff09;模态对话框&#xff08;2&#xff09;非模态对话框 二、Qt内置对话框 引言 在上一篇文章中&#xff0c;我们深入探讨了Qt框架中窗口的基本构建块&#xff0c;它们共同构成了Qt应用程序中用户界面&#xff08;…