Vue3实现自定义Input组件的示例详解
实现一个类似el-input的组件,可以v-model双向绑定。
v-model作用于组件时,相当于
<template> <MyInput v-model="user_name" /> <MyInput :modelValue="user_name" @update:modelValue="user_name = $event" /> </template>
父组件
<template> <MyInput v-model="user_name" /> </template> <script setup lang="ts" name="Home123"> import { ref } from "vue" import MyInput from "./MyInput.vue" let user_name = ref("") </script> <style scoped></style>
自定义Input组件
<template> <input type="text" :value="modelValue" @input="emits('update:modelValue', (<HTMLInputElement>$event.target).value)" /> </template> <script setup lang="ts" name="MyInput123"> defineProps(["modelValue"]) let emits = defineEmits(["update:modelValue"]) </script> <style scoped> input { width: 200px; height: 40px; background-color: antiquewhite; border: 1px solid #efefef; border-radius: 5px; } </style>
v-model默认以 :modelValue 以及 @update:modelValue 两步实现。
如果绑定多个v-model就需要自定义属性名,可以在v-model后添加 :属性名
<template> <MyInput v-model:user="user_name" /> </template>
子组件中将原先modelValue变为自定义属性名
<template> <input type="text" :value="user" @input="emits('update:user', (<HTMLInputElement>$event.target).value)" /> </template> <script setup lang="ts" name="MyInput123"> defineProps(["user"]) let emits = defineEmits(["update:user"]) </script>
子组件中Input的 $event 是什么,以及什么时候可以.target。
对于原生事件来说, $event就是事件对象,所以可以.target。
对于自定义事件来说, $event就是触发事件时,所传递的数据。
到此这篇关于Vue3实现自定义Input组件的示例详解的文章就介绍到这了,更多相关Vue3自定义Input组件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Element-ui树形控件el-tree自定义增删改和局部刷新及懒加载操作
这篇文章主要介绍了Element-ui树形控件el-tree自定义增删改和局部刷新及懒加载操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-08-08解析使用useDark(),发现transition 动画失效
这篇文章主要为大家介绍了使用useDark(),发现transition动画失效的示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-05-05
最新评论