当前位置: 首页 > news >正文

网站建设职责要求服装网站建设工作室

网站建设职责要求,服装网站建设工作室,联合建设官方网站,网站栏目名目录 前言#xff1a; 回忆基本的原生用法#xff1a; 原生input的封装#xff1a; 自定义v-model参数#xff1a; 对el-input的二次封装#xff1a; 多个v-model进行绑定: v-model修饰符#xff1a; v-model自定义参数与自定义修饰符的结合#xff1a; 前言 回忆基本的原生用法 原生input的封装 自定义v-model参数 对el-input的二次封装 多个v-model进行绑定: v-model修饰符 v-model自定义参数与自定义修饰符的结合 前言 提起v-model想必都不陌生作为vue的经典语法帮助我们在编写项目的时候省了很多很多的事情本文着重记录v-model在组件上的绑定使用 回忆基本的原生用法 使用原生的input我们一般这么写 input typetext v-modelname 此种写法相当于以下写法 input typetext :valuename inpute name e.target.value input typetext :valuename inputname $event.target.value 而当我们在一个组件上使用v-model的写法时实际写法时长这个样子 custom-input :model-valuename update:modelValuenewValuename newValue/custom-input 请注意model-value与update:modelValue并不是我规定的而是vue规定的 于是乎我们如果想写成这样使用那就需要将组件内部的input value值与modelValue进行绑定。 当原生的input时间触发时利用update:modelValue将新值携带出去 custom-input v-modelname/custom-input 原生input的封装 templatedivmodelValue: input :valuemodelValue input$emit(update:modelValue, $event.target.value)/div /templatescript setupimport { defineProps, defineEmits } from vueconst props defineProps([modelValue])const emit defineEmits([update:modelValue]) /script 或者另一种写法 templatedivmodelValue: input v-modelvalue/div /templatescript setupimport {defineProps,defineEmits,computed} from vueconst props defineProps([modelValue])const emit defineEmits([update:modelValue])const value computed({get() {return props.modelValue},set(value) {emit(update:modelValue, value)}}) /script 两种写法都可这样我们就可以引入我们的自定义的组件采用如此写法 templatecustom-input v-modelname/custom-inputdivname:{{name}}/div /templatescript setupimport {ref} from vue;import CustomInput from ./components/custom-input/index.vue;const name ref() /script自定义v-model参数 在默认的情况下组件的都是使用modelValue作为自己的prop使用update:modelValue作为对应的更新事件有时候我们需要去改动一哈 基本规则就是自定义的propxxx, 对应的更新事件update:xxx, 组件上就变成了v-model:xxx的写法下面以value举例 templatediv自定义v-model的参数例value: input :valuevalue input$emit(update:value, $event.target.value)/div /templatescript setupimport {defineProps,defineEmits} from vueconst props defineProps([value])const emit defineEmits([update:value]) /script那么我们在组件上使用就变成了这样子 custom-input v-model:valuename/custom-input 所以当我们使用element-plus中的el-input组件时会发现是这样的写法 当使用Naive UI或者Ant Design Vue中的input组件时会发现是这样写法 总得来说就是element-plus用了默认的而另外两个对其进行了自定义参数而且参数是value 至于另外一种使用computed的写法依照最基础的版本进行编辑即可 对el-input的二次封装 在正常写项目的时候一般都会选择一个适用项目的ui框架不管是element-plus或者naive等等我们不可能说自己去写一个原生的input组件进行封装除非你的input长得特别奇特。。。大部分情况下我们对ui组件库的组件进行二次封装即可更多的可能是业务上的封装。 这里以el-input举例上面说到el-input其实是用的默认的参数modelValue,我们通过阅读el-input文档也可以看出来---el-input 故当我们在对el-input进行二次封装的时候需要这么写 templatedivmodelValue:el-input :model-valuemodelValue input$emit(update:modelValue,$event) //div /templatescript setupimport {defineProps,defineEmits} from vueconst props defineProps([modelValue])const emit defineEmits([update:modelValue]) /script如果你是用的Naive UI组件库那么在你对n-input组件进行二次封装的时候,就需要使用valueupdate:value了其他的组件库也是如此 多个v-model进行绑定: 当我们在自定义的组件中写了多个输入框或者是其他之类的表单式组件那就必须在组件上使用多个v-model这个时候默认的modelValue已经不够我们使用了所以我们必须要进行自定义v-model参数。很简单写一起就ok templatedivmodelValue:el-input :model-valuemodelValue input$emit(update:modelValue,$event) //divdiv自定义v-model的参数例value:el-input :model-valuevalue input$emit(update:value,$event) //div /templatescript setupimport {defineProps,defineEmits} from vueconst props defineProps([modelValue, value])const emit defineEmits([update:modelValue, update:value]) /scripttemplatecustom-el-input v-modelname v-model:valuedesc/custom-el-inputdivname:{{name}}/divdivdesc:{{desc}}/div/templatescript setupimport CustomElInput from ./components/custom-el-input/index.vueimport {ref} from vue;const name ref()const desc ref() /scriptv-model修饰符 关于v-model的修饰符知道有一些内置的修饰符例如.trim.number之类的。有时候我们需要自定义修饰符看下面的例子 有个需求要求当你在输入框中输入 “千珏” 二字的时候就变成 *** 。此修饰符我决定命名为.replace写出来的效果是这个样子的 custom-el-input v-model.replacename/custom-el-input 那么组件内部该如何去写? 首先我们需要在props里面写上默认的modelValue其次我们还需要添加上modelModifiers,这个也是默认的和modelValue都是配套的注意modelModifiers的默认值是一个空对象 templatedivmodelValue:el-input :model-valuemodelValue inputinput //div /templatescript setupimport {defineProps,defineEmits} from vue;const props defineProps({modelValue: String,modelModifiers: {default: () ({})}})const emit defineEmits([update:modelValue])/* 将 千珏 关键字代替为 *** 字 */const input (value) {console.log(props);} /script打印props可以看到如下内容 当我们在组件上使用 v-model.replace时在此处replace为true那我们就可以愉快的进行下一步了这里我使用了lodash的_replace方法:lodash的_replace /* 将 千珏 关键字代替为 *** 字 */const input (value) {const replace props.modelModifiers.replaceconst keyWord 千珏const replaceWord ***if (replace) {value _replace(value, keyWord, replaceWord)}emit(update:modelValue, value)} 页面展示就会长这个样子***就是千珏了嘿嘿 v-model自定义参数与自定义修饰符的结合 需求又来了:当我们输入小写字母时自动变为对应的大写字母。 对于此种情况modelValue与modelModifiers当然就不能再用了。此时的规则就是我们自定义一个参数xxx,而对应的modelModifiers将变成xxxModifiers,这里以value举例props就会有两个参数value和valueModifiers。 templatediv自定义v-model的参数例value:el-input :model-valuevalue inputinput //div /templatescript setupimport {defineProps,defineEmits} from vue;import _toUpper from lodash/toUpperconst props defineProps({value: String,valueModifiers: {default: () ({})}})const emit defineEmits([update:value])/* 将 小写字母 转化为 大写字母 */const input (value) {const toUpper props.valueModifiers.toUpperif (toUpper) {value _toUpper(value)}emit(update:value, value)} /script组件使用 custom-el-input v-model:value.toUpperdesc/custom-el-input 此时我们如何输入小写字母都会被自动转化为大写这就成功了
http://www.w-s-a.com/news/237384/

相关文章:

  • 网上做设计兼职哪个网站好点网站开发毕业周记
  • 自学商城网站建设无为网页定制
  • wordpress全站cdn手机网站调用分享
  • 淄博做网站58同城wordpress微信号订阅
  • 不同的网站 做301公共资源交易中心是干嘛的
  • 36 氪 网站如何优化怎么优化自己的网站
  • 网站兼容问题湖北网站建设优化
  • 2018新网站做外链app制作的网站
  • 外贸网站建设怎么建设pc网站做移动端适配
  • 做经销找厂家好的网站个人备案网站可以做电影站吗
  • 网站搭建怎么做网站建设培训哪家好
  • 学做美食的视频网站企业网站备案密码怎么找回
  • 销售产品做单页还是网站seo有哪些作用
  • 网站视觉规范南宁网站优化推广
  • 公司起名打分最准的免费网站学设计的学校
  • 用cn作网站行么WordPress网站打不开nginx
  • 顺德龙江网站建设百货商城自助下单网站
  • 门户网站采用较多的模式是wordpress自动搜索缩略图
  • 深圳设计功能网站做网站推广怎么做
  • 海口专业网站建设地址wordpress站点标题是什么
  • 青岛做网站那家好网页素材网
  • 宁夏银川做网站的公司网络营销有哪些推广方法
  • 免费域名网站哪个最好东莞企业网站排名
  • dz做网站网址模版
  • 做外贸网站平台中华室内设计师网
  • 三大网络架构seo是啥职业
  • 一个域名可以做中英文两个网站吗搜索引擎营销的6种方式
  • 可以做ppt的网站天津网站建设怎么样
  • 网站怎么做的qq邮件订阅浙江省住房和城乡建设厅网站查询
  • 主机屋网站在线做图片