Vue学习笔记-自定义组件使用v-model

如何理解界面陷阱电荷呢(interface trapped charge)和费米钉扎效应? 如何理解界面陷阱电荷呢?(interface trapped charge) 我们在学半导体物理的时候经常对各种界面态和陷阱分不清楚,然而这却是半导体中最为关键的知识点之一。我这路主要介绍一下如何比较直观地理解界面陷阱电荷,应该也有叫界面态,快态之类的。 在介绍界面陷阱电荷之前,我们可以回顾一下施主(donor)和受主(acceptor)的概念。在si中如果掺杂了n型杂质P,那么P由于最外层电子有5个,有一个电子比较容易跑走,成为自由移动的导电电子,在能带中可以表现为电子从禁带中的能级跃迁到导带,这种情况我 阅读详情

拆解实现

父组件

<template>
  <div>
  </div>
  <Son :name="name" @inputChange="inputChange"></Son>
  {{ name }}
</template>


<script setup>
import {ref} from 'vue'
import Son from './son2.vue'

const name=ref("张三")

const inputChange=(value)=>{
  name.value=value
}
</script>

<style  scoped>

</style>

子组件

<template>
  <div>
    <input type="text" :value="name" @input="inputChange">
  </div>
</template>


<script setup>
defineProps(['name'])

const inputChange=({target:{value}})=>{
emit('inputChange',value)
}
const emit=defineEmits(['inputChange'])




</script>

<style  scoped>

</style>

 然后进行改造成我们想要的v-model形式

父组件这边

<template>
  <div>
  </div>
  <!-- <Son :name="name" @inputChange="inputChange"></Son> -->
  <Son v-model:aaa="name" age="18"></Son>
  {{ name }}
</template>


<script setup>
import {ref} from 'vue'
import Son from './son2.vue'

const name=ref("张三")

const inputChange=(value)=>{
  name.value=value
}
</script>

<style  scoped>

</style>

注意和之前的父组件内容进行对比

再来到子组件这里

<template>
  <div>
    <!-- <input type="text" :value="name" @input="inputChange"> -->
    <input type="text" :value="aaa" @input="inputChange">
  </div>
</template>


<script setup>
// defineProps(['name'])


// const emit=defineEmits(['inputChange'])
//v-model必须要使用update:开头
//然后跟上对应的v-model的属性名
const emit=defineEmits(['update:aaa'])
//这个时候defineProps接收的是v-model传过来的值
//注意:v-model传功来的属性和父子传值的属性不能重名

//aaa 就是v-model的值
//age 就是 父子传值的属性

defineProps(['aaa','age'])


const inputChange=({target:{value}})=>{
emit('update:aaa',value),
console.log({target:{value}});
console.log("value",value);
console.log("target",event.target);
//{target:{value}} 解构赋值
console.log(event.target.value===value);
}



</script>

<style  scoped>

</style>

这样就完成了自定以组件的双向绑定。

其中,有几个需要注意的地方,就是使用defineProps()时,注意区分v-model的值和父子传值的属性。

还有就是那个update:aaa中的update,这里使用update是vue框架官方的写法,如果想要叫其他值,就还需要父组件传递对应的事件@custom-update:myValue="someData = $event",过程也比较繁琐,这里只是说明为什么那里要叫update。在实际的开发中还是使用这种固定命名的比较便于开发。

==============================补充==============================

如果想要像使用UI组件库那样,直接在使用的时候使用v-model而不是还要加上自己的命名v-model:aaa这样的,那我们就要做如下修改:
首先父组件:
 

<template>
  <div>
  </div>
  <!-- <Son :name="name" @inputChange="inputChange"></Son> 

    <Son v-model:aaa="name" age="18"></Son>
-->
    <Son v-model="name" age="18"></Son>
  
  {{ name }}
</template>


<script setup>
import {ref} from 'vue'
import Son from './son2.vue'

const name=ref("张三")


</script>

<style  scoped>

</style>

这样自定义组件的v-model使用就像使用UI组件库一样了,

然后主要是改变子节点,

<template>
  <div>
    <!-- <input type="text" :value="name" @input="inputChange">
     <input type="text" :value="aaa" @input="inputChange">
这里就不要使用我们自定义的value值aaa了,而是vue3默认的modelValue
 -->
     <input type="text" :value="modelValue" @input="inputChange">
   
  </div>
</template>


<script setup>
// defineProps(['name'])


// const emit=defineEmits(['inputChange'])
//v-model必须要使用update:开头
//然后跟上对应的v-model的属性名
const emit=defineEmits(['update:modelValue'])
//这个时候defineProps接收的是v-model传过来的值
//注意:v-model传功来的属性和父子传值的属性不能重名

//aaa 就是v-model的值
//age 就是 父子传值的属性

//其实就是以前写aaa的地方都换成modelValue,因为vue3默认接受的值就是modelValue,所以我们在父组件中就可以省略冒号后面的自定义value。
defineProps(['modelValue','age'])

const inputChange=({target:{value}})=>{
emit('update:modelValue',value),
console.log({target:{value}});
console.log("value",value);
console.log("target",event.target);
//{target:{value}} 解构赋值
console.log(event.target.value===value);
}



</script>

<style  scoped>

</style>

立项书8分钟定生死?手把手教你用ChatGPT辅助打造高水平申报书,让评审专家一看就想打高分! 宏大叙事、空话堆砌只会让评审绕晕,不如聚焦一个具体问题,拿出清晰的研究路径、扎实的设计方案,把“我想做什么、为什么做、打算怎么做”讲明白。对评审来说,关键不在你读了多少,而在你能否看清领域的共识、争议和空白,GPT的作用就在于帮你理清研究脉络,发现问题结构,聚焦那些还没被充分讨论的变量或方法,去提升综述的深度。之前要用到ProcessOn、Draw.io等工具画流程图,现在有了ai虽然方便了,但也需要多次调教,如果嫌麻烦,七哥给大家准备了课题申报常用的流程图,技术路线图,方便大家直接拿来编辑填空使用。 阅读详情

相关推荐

STM32_USB复合设备开发实战:基于CubeMX插件简化HID与CDC集成

本文详细介绍了如何使用STM32CubeMX插件简化USB复合设备开发,特别是HID与CDC的集成。通过自动处理多设备描述符融合和端点资源分配,该插件显著降低了开发复杂度,帮助工程师快速实现键盘、鼠标和虚拟串口等复合功能,提升STM32 USB开发效率。

palm99的专栏 750

Vue中自定义组件上使用v-model

自定义组件上使用v-model

weixin_62189802的博客 1万+

在 CentOS7 下安装 Cadence IC验证平台 INCISIVE152

前言 本文所使用的软件 虚拟机软件:VMware Workstation 15 PRO 如何安装? 操作系统:CentOS-7, CentOS-7-x86_64-DVD-1810.iso 如何安装? 简介 INCISIVE Incisive是nc_verilog, nc_sim, nc_lauch,以及ABV,TBV的集合,用于仿真和验证。 InstallScape InstallSc...

沈醉不知的博客 2万+

Vue 自定义组件中 v-model 的使用

Vue自定义组件如何使用v-model,整理了Vue2和Vue3中的用法

qq_40179479的博客 1万+

告别黑窗口:XShell+X11转发图形化界面的5分钟保姆级教程(附Xming配置)

本文详细介绍了如何使用XShell和X11转发技术快速实现Linux图形化界面的远程访问。通过5分钟快速配置指南,包括服务端设置、客户端工具选择及XShell+Xming的完美配置,帮助用户高效运行GUI应用程序,提升远程工作效率。特别适合需要图形化操作的开发者和运维人员。

weixin_29223603的博客 328

5分钟搞定CST周期性结构仿真:共面波导色散曲线快速生成技巧

本文提供了一套在CST Studio Suite中快速仿真周期性结构并生成色散曲线的标准化流程。针对共面波导设计,重点解析了周期性边界条件的核心设置、本征模求解器(JDM算法)的优化技巧,以及通过参数扫描与后处理模板实现自动化,旨在帮助射频与微波工程师在5分钟内高效完成关键性能验证。

blue的专栏 1249

自定义组件如何使用v-model

自定义组件v-model使用

Chase 学习专栏 2522

Python爬招聘网站:Selenium+ActionChains破解滑动验证码,批量采集岗位数据(新手可跑)

通过本文实战,你不仅学会了用Selenium+ActionChains破解滑动验证码,还掌握了爬虫的核心优化思路——“模拟人类行为”是突破反爬的关键。这套逻辑不仅适用于招聘网站,还能迁移到其他有滑动验证码的平台(如电商、资讯网站)。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1188

vue-在组件中使用v-model

当我们使用。

小陈的博客 1万+

《S32系列芯片——Boot & HSE详解》持续更新中...

专栏总目录,将详细介绍S32系列芯片的Boot功能,最终给出HSE基于IVT的Secure Boot方案!!!

车载系统攻城狮 4387

Python教程:一文了解Python的深拷贝与浅拷贝

理解 Python 中的深拷贝(deep copy)和浅拷贝(shallow copy)是非常重要的,特别是在处理嵌套结构的数据时。让我们深入探讨这两个概念,并通过代码示例进行说明。

旦莫的博客 3968

自定义组件的v-model(v-model的实现原理)

自定义组件的v-model 组件上的 v-model 默认会利用名为 value 的 prop 和名为 input 的事件。 按照Vue官网介绍,Vue的双向绑定是一种语法糖。本质上是 “负责监听用户的输入事件以更新数据,并对一些极端场景进行一些特殊处理。” <input v-model="parentData"> 等价于: <input :value="parentData" @input="parentData = $event.target.value" >

weixin_43912081的博客 1万+

LVGL实战 透视卡盘

八张卡立在一个圆柱面上,摄像机在柱心前方。每帧对屏幕上的每个像素发一条射线,与卡片所在平面求交,得到三维交点,再投影回卡片自己的二维坐标系取样。透视、倾斜、近大远小、相互遮挡 —— 全部是这一步的副产物。

摸鱼专家 55

Vue3学习笔记3 生命周期、异步组件、代码分包、Suspense、依赖注入、Mitt、v-model、自定义指令directive

1. 生命周期 2. 异步组件-代码分包-suspense 3. Teleport传送组件 4. 依赖注入Provide / Inject 5. Mitt库的使用 6. v-model和.sync修饰符 7. 自定义指令

AIpoem的博客 3312

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Vue 自定义组件v-model父子组件传值双向绑定

{{message}} [](()去除它的语法糖 {{message}} <input type=“text” v-bind:value=‘message’ @input=‘message = $event.target.value’> [](()自定义组件如何使 《大厂前端面试题解析+Web核心总结学习笔记+企业项目实战源码+最新高清讲解视频》无偿开源 徽信搜索公众号【编程进阶路】 用v-model vue里面自定义组件v-model的语法糖: ...

m0_70647189的博客 577

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

vue学习笔记

父组件定义修饰符//父组件 < MyComponent v - model . capitalize = "bookTitle" / >子组件声明属性和触发事件、自定义功能触发函数//子组件 const props = defineProps({//父组件 < MyComponent v - model : title . capitalize = "bookTitle" / >//子组件 const props = defineProps({当构建前端应用时,我们常常需要复用公共任务的逻辑。

m0_61989957的博客 244

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

前端Vue篇之v-model 是如何实现的,语法糖实际是什么?v-model 可以被用在自定义组件上吗?如果可以,如何使用?

v-model 是Vue提供的指令,用于在表单元素和组件上实现双向数据绑定。它实际上是一个语法糖,可以简化对数据的读写操作。在原生HTML元素上,v-model相当于给元素绑定value属性和input事件。对于自定义组件,可以通过model选项来实现v-model的双向绑定,确保组件和父组件之间的数据同步。

星辰迷上大海的博客 3837

vue中内置指令v-model的作用和常见使用方法介绍以及在自定义组件上支持

在计算机科学中,语法糖(syntactic sugar)是指编程语言中可以更容易地表达一个操作的语法。它可以使程序员更加容易地使用这门语言,使操作变得更加清晰、方便,或者更加符合程序员的编程习惯。具体来说,语法糖是语言中的一个构件,当去掉该构件后并不影响语言的功能和表达能力。例如,C语言中的标记a[i]就是*(a+i)的语法糖。语言的处理器,包括编译器,静态分析器等,经常会在处理之前把语法糖构件转换成更加基础的构件,这个过程通常被称为"desugaring"。简而言之,语法糖就是一种便捷写法。

在这里,我乐于倾囊相授,分享我的技术心得、项目实战经验、技术技巧。希望能够惠及更多的开发者,助力大家在技术的海洋中扬帆远航。 1万+

Vue 3 的v-model在组件上的使用:介绍如何在自定义组件上实现v-model

摘要 本文深入探讨Vue 3中v-model在自定义组件中的应用。首先回顾Vue 2中v-model的实现原理(基于value prop和input事件的语法糖),指出其不够灵活的局限性。重点分析Vue 3的革新:默认使用modelValue prop和update:modelValue事件,使双向绑定更语义化且可配置。通过代码示例对比两个版本的实现差异,展示了Vue 3在自定义组件数据绑定方面的优势。全文旨在帮助开发者理解v-model的演进历程,掌握在Vue 3项目中为自定义组件实现双向数据绑定的核心方

深耕 Vue 生态与 JS/TS 技术,聚焦组件封装、响应式原理、TS 类型设计,解析工程化配置与性能优化方案。同时分享 YOLOv8 目标检测实战、AI 大模型面试核心考点,以代码实例拆解技术实现与业务解法。 1337

Vue在组件上使用v-model

Vue在组件上使用v-model 自定义事件也可以用于创建支持 v-model 的自定义输入组件。记住: <input v-model="searchText"> 等价于: <input :value="searchText" @input="searchText = $event.target.value" > 当用在组件上时,v-model 则会这样: <custom-input :value="searchText" @input="searchTex

码小余の博客 7486

Vue自定义组件使用v-model指令

基本概念与作用v-model 指令自定义组件与v-model示例一:基本的自定义组件v-model实现示例二:使用v-model处理复杂组件示例三:使用自定义事件名称示例四:处理多个属性的双向绑定使用技巧与分析在Vue.js中,v-model指令提供了一种便捷的方式来实现表单控件与Vue实例之间的双向数据绑定。然而,v-model默认仅适用于原生的HTML表单控件,如和。对于自定义组件而言,我们需要手动实现与v-model。

一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身"农奴"把歌唱,一边打入敌人内部一边持续提升自己,为我们广大开发同胞谋福祉,坚决抵制睿智产品折磨我们码农兄弟! 3007

vue自定义组件,v-model完美使用方式

vue自定义组件,v-model完美使用方式前言实现效果父组件子组件 前言 当我们自定义form组件的时候,v-mode是几乎必须的,但v-mode的正确写法应该是怎样呢? 其实只要了解vue自定义组件保留的关键变量 value 和方法 input 就简单很多了。 实现效果 我们定义了父子组件,并各自有自己的输入框,父子的输入框实现双向绑定,效果如下: 父组件 父组件代码如下,插入了一个自定义的...

iamlujingtao的博客 6567

Vue 在组件上使用 v-model

Vue 在组件上使用 v-model v-model 双向数据绑定 简单理解: 相当于在input上动态绑定了value, 又在input绑定了input事件 在组件上使用 在组件上使用 v-model 会默认在组件上添加 默认自定义属性( value ) 默认自定义事件( input ) 小栗子: <template> <div> 这里是父组件<b...

bao 3233

vue自定义组件中使用v-model

vue 自定义组件中使用 v-model v-model 简单认识 v-model 是 vue 用于数据双向绑定的一个指令。其实它是一个语法糖,本质上包含两个操作: v-bind 绑定一个 value 属性 v-on 指令给当前元素绑定 input 事件 即 <input type="text" v-model="message" /> 等同于 <input type="text" v-bind:value="message" v-on:input="message=$e

u010671652的专栏 2057

vue在自定义组件中使用v-model

要想解释清楚v-model在自定义组件中的用法,我得先来看看普通的组件传值… 一、普通的组件传值 如下代码: 这是一个简单的父子,子父传值示例 父组件: <!-- parent --> <template> <div class="parent"> 我是父组件:{{par}} <Child @givepar="formChild" ...

Oralinge 4426

vue2 自定义组件如何使用v-model

vue2 自定义组件如何使用v-model

letianxf的博客 5243
上一篇: vue学习笔记之组件传值
下一篇: Typescript学习笔记(1.0)
mez_Blog
mez_Blog 新星创作者: 前端开发技术领域 新星创作者: 前端开发技术领域
博客等级 码龄9年 1万+粉丝 346原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mez_Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值