为了账号安全,请及时绑定邮箱和手机立即绑定

【学习打卡】第8天 Vue3 + TS仿知乎专栏企业级项目

标签:
Vue.js

课程名称:Vue3 + TS仿知乎专栏企业级项目
课程章节:第5章
主讲老师:张轩

课程内容

今天学习Form表单的定义实现
表单的验证规则定义使用type和message作为判断一句,每个表单项的Input项会对每个字段逐一检验是否满足规则。
Vue2和Vue3的双向绑定方式有所改变,因为input有些触发改动的方法不一样,比如有的是change,有的是checked,使用onUpdate:modelValue会比较统一。比如
数据更新的方法:

const updateValue = (e: KeyboardEvent) => {
  const targetValue = (e.target as HTMLInputElement).value
  inputRef.val = targetValue
  context.emit('update:modelValue', targetValue)
}

input用ref值绑定,并设置变更的方法来监听

<input
  type="text"
  class="form-control"
  :class="{ 'is-invalid': inputRef.error }"
  :value="inputRef.val"
  @blur="validateInput"
  @input="updateValue"
/>

ValidateInput上一层是Form表单,所以需要用到插槽的方式来嵌入,并且使用具名插槽的方式指定位置,比如替换掉提交按钮。
在之前的课程学到了很方便的provide/inject的数据处理方式,课程寻找的外援mitt也非常方便,API也是简单的on, off, emit,不过在TS类型的定义上容易踩坑。

课程收获

对于检验的每一项,如果一个条件没有满足,可能就直接停止校验了,避免这种bug可以使用map,然后紧接着every来直接返回值。
图片描述

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消