首页 > 其他分享 >v-model

v-model

时间:2024-03-26 09:34:52浏览次数:21  
标签:自定义 value 生成 input model 属性

Vue2中的v-model

v-model即可以作用于表单元素,又可作用于自定义组件,无论是哪一种情况,它都是一个语法糖,最终会生成一个属性和一个事件

  • 当其作用于表单元素时,vue会根据作用的表单元素类型而生成合适的属性和事件。例如,作用于普通文本框的时候,它会生成value属性和input事件,而当其作用于单选框或多选框时,它会生成checked属性和change事件。

  • 当其作用于自定义组件时,默认情况下,它会生成一个value属性和input事件。

<Comp v-model="data" />
<!-- 等效于 -->
<Comp :value="data" @input="data=$event" />

可以通过组件的model配置来改变生成的属性和事件

// Comp
const Comp = {
  model: {
    prop: "number", // 默认为 value
    event: "change" // 默认为 input
  }
  // ...
}
Comp v-model="data" />
<!-- 等效于 -->
<Comp :number="data" @change="data=$event" />

Vue2比较让人诟病的一点就是提供了两种双向绑定:v-model和.sync

<!-- vue2 -->
<ChildComponent :title="pageTitle" @update:title="pageTitle = $event" />
<!-- 简写为 -->
<ChildComponent :title.sync="pageTitle" />

Vue3的变化

为了让v-model更好的针对多个属性进行双向绑定,Vue3作出了以下修改。

  1. 当对自定义组件使用v-model指令时,绑定的属性名由原来的value变为modelValue,事件名由原来的input变为update:modelValue。
<!-- vue2 -->
<ChildComponent :value="pageTitle" @input="pageTitle = $event" />
<!-- 简写为 -->
<ChildComponent v-model="pageTitle" />

<!-- vue3 -->
<ChildComponent
  :modelValue="pageTitle"
  @update:modelValue="pageTitle = $event"
/>
<!-- 简写为 -->
<ChildComponent v-model="pageTitle" />
  1. 去掉了.sync修饰符,它原本的功能由v-model的参数替代
<!-- vue2 -->
<ChildComponent :title="pageTitle" @update:title="pageTitle = $event" />
<!-- 简写为 -->
<ChildComponent :title.sync="pageTitle" />

<!-- vue3 -->
<ChildComponent :title="pageTitle" @update:title="pageTitle = $event" />
<!-- 简写为 -->
<ChildComponent v-model:title="pageTitle" />
  1. model配置被移除

  2. 允许自定义v-model修饰符

标签:自定义,value,生成,input,model,属性
From: https://www.cnblogs.com/zhanxinbing/p/18095888

相关文章

  • 面试官:只知道v-model是:modelValue和@onUpdate语法糖,那你可以走了
    前言我们每天都在用v-model,并且大家都知道在vue3中v-model是:modelValue和@update:modelValue的语法糖。那你知道v-model指令是如何变成组件上的modelValue属性和@update:modelValue事件呢?将v-model指令转换为modelValue属性和@update:modelValue事件这一过程是在编译时还是运行......
  • Android官方架构组件ViewModel_从前世今生到追本溯源,android插件化开发指南
    ViewModel在对应的作用域内保持生命周期内的局部单例,这就引发一个更好用的特性,那就是Fragment、Activity等UI组件间的通信。3.3更方便UI组件之间的通信一个Activity中的多个Fragment相互通讯是很常见的,如果ViewModel的实例化作用域为Activity的生命周期,则两个Fragment......
  • A LARGE LANGUAGE MODEL EVALUATION BENCHMARK AND BASELINE FOR CHINESE PUBLIC SECU
    本文是LLM系列文章,针对《CPSDBENCH:ALARGELANGUAGEMODELEVALUATIONBENCHMARKANDBASELINEFORCHINESEPUBLICSECURITYDOMAIN》的翻译。CPSDBENCH:中国公共安全领域的大型语言模型评估基准和基线摘要1引言2相关工作3方法4结果与分析5结论摘要大......
  • Pre-trained Model
    Whatispre-training?Self-supervisedlearningonthelargesetofunlabeleddata.Pre-trainedModelArchitecturePre-trainingtaskTaskTypeExampleEncoder-only(AutoEncoder)MaskedLanguageModelNLUBERTFamilyDecoder-only(AutoRegression)......
  • A Survey on Large Language Model Hallucination via a Creativity Perspective
    本文是LLM系列文章,针对《ASurveyonLargeLanguageModelHallucinationviaaCreativityPerspective》的翻译。从创造力的角度考察大型语言模型的幻觉摘要1引言2LLM时代的幻觉3幻觉中隐藏的创造力4大型语言模型的创造力5利用LLM幻觉进行创造6结论和未......
  • Imagen: Photorealistic Text-to-Image Diffusion Models with Deep Language Underst
    名称Imagen:PhotorealisticText-to-ImageDiffusionModelswithDeepLanguageUnderstanding时间:22/05机构:GoogleTL;DR发现使用LLM(T5)可以作为text2image任务的textencoder,并且提升LLM模型size相对于提升imageDM模型size性价比更高,生成的图像保真度更高,内容也更符合文......
  • 深入理解Django的ModelForm操作
    深入理解Django的ModelForm操作原文链接:https://www.cnblogs.com/shenjianping/p/11562148.html一、ModelForm的使用顾名思义,ModelForm就是将Model与Form进行绑定,Form有自动生成表单的作用,但是每一个forms字段需要自己手动填写,而Model就是数据库表包含了所有的数据字段。所以M......
  • [基础] DiT: Scalable Diffusion Models with Transformers
    名称DiT:ScalableDiffusionModelswithTransformers时间:23/03机构:UCBerkeley&&NYUTL;DR提出首个基于Transformer的DiffusionModel,效果打败SD,并且DiT在图像生成任务上随着Flops增加效果会降低,比较符合scalinglaw。后续sora的DM也使用该网络架构。Method网络结构整......
  • 阿里ModelScope应用案例-cnblog
    ​信息抽取(实体识别)分词人像抠图摘要生成人体关键点表格搜索文本分类自然语言理解人像卡通化人像增强算法图文检索大模型与Agent文字识别......
  • T4模板使用记录,生成Model、Service、Repository
    自己目前在搭建一个.NETCore的框架,本来是打算使用前端做代码生成器直接生成到文件的,快做好了。感觉好像使用T4更方便一些,所以也就有了这篇文章~ 我还是有个问题没解决,就是我想生成每个类(接口)单独的文件~,如果有老师知道指点下啊~在网上找了一篇相关文章 本文也是基于这个做......