theme: mk-cute

这是我参与8月更文挑战的第6天,活动详情查看:8月更文挑战

VUE3组件库-input组件

大家好,今天一起来学习vue3实现input组件,希望对你有帮助

  • 目录预览

    • 基本使用
    • 朴素模式
    • 文本域模式
  • 基本使用

    • 效果

    • 失焦状态下

-   聚焦状态下

-   新建Input.vue文件用来存放input代码-   div样式上加个定位,以防label跑出盒子-   给input框加上对应样式 并用v-model绑定值```<template><div style="position: relative"> <inputclass="simple-input"type="text"v-model="value"/><label class="simple-input--label">{{ placeholder }}</label></div></template>```-   在App.vue文件中引入-   v-model绑定子组件的值```<template><simpleinput placeholder="请输入文本" v-model="values" /></template><script setup>import simpleinput from "./components/Input.vue";import { ref } from "vue";const values = ref("");</script>```-   获取属性值-   在setup语法糖中,引入defineProps接收父级传进来的props-   接收placeholder,modelValue-   **注意**-   vue3中v-model传进来的值为modelValue```import { defineProps, defineEmits, ref } from "vue";const props = defineProps({placeholder: String,modelValue: String,});```-   子组件属性与父级属性值同步-   在input框上定义@input方法,只要有输入就会触发-   引入defineEmits 并在@input方法内修改App.vue里的values```const emits = defineEmits(["update:modelValue"]);let handleinput = () => {emits("update:modelValue", value.value);};```-   input框聚焦和失焦状态-   @focus 聚焦 将底部线变为蓝色 label文字变为蓝色并向上移加上动画效果-   @blur 失焦 将状态复原-   Css样式 较为简单 可自行编写
  • 朴素模式

    • 效果预览

    • 失焦状态

-   聚焦状态

-   朴素模式传入一个line属性```<simpleinput placeholder="请输入文本" line v-model="values" />```-   根据line的布尔值去判断底部边框是否展示
  • 文本域模式

    • 效果预览

    • 失焦状态

-   聚焦状态

-   文本域传入一个textarea属性```<simpleinput placeholder="请输入文本" textarea v-model="values" />```-   在Input.vue里接收textarea属性 并用v-if进行判断 如果textarea存在则input框改为textarea```<inputv-if="!textarea"class="simple-input":class="[show ? 'simple-input--focus' : '',line ? 'simple-input--line' : '',]"type="text"v-model="value"@input="handleinput"@focus="handleFocus"@blur="handleBlur"/>​<textareav-if="textarea"name=""id=""class="simple-input":class="[textarea ? 'simple-textarea' : '',show ? 'simple-input--focus' : '',]"rows="8"@input="handleinput"@focus="handleFocus"@blur="handleBlur"></textarea>```-   文本框默认可伸缩 加上resize:none 可关闭伸缩
  • 自定义指令 v-focus 自动聚焦

    • vue2写法 全局注册

      Vue.directive('focus', { // 当被绑定的元素插入到 DOM 中时…… inserted: function (el) {   // 聚焦元素   el.focus() } })

    • vue3写法

      • inserted 替换成了mounted
      • 之后可在组件中使用v-focus指令

      const app = createApp(App) app.directive('focus', {   mounted(el) {       el.focus()   } }) app.mount('#app')

  • 总结

    • 今日input组件完成
    • 下一篇我们继续讲解Form表单中的组件

VUE3组件库-input组件相关推荐

  1. 两步教你用Vue3+TS实现input组件的v-model属性

    实现自定义input组件的v-model属性 前言 第一步 第二步 效果 前言 使用过一些ui框架的同学应该都知道input里面的值有一个绑定的v-model属性,这篇文章教大家如何给自己定义的inp ...

  2. 微信小程序,引入WeUI组件库 扩展组件库

    小程序扩展组件库 | 微信开放文档 微信官方文档给了两种weui引入方式: 通过 useExtendedLib 扩展库 的方式引入,这种方式引入的组件将不会计入代码包大小. 可以通过npm方式下载构建 ...

  3. Vue.js_04_组件_Element组件库_组件通信_PropsDown_EventsUp

    Vue.js 四天课程学习笔记_第4天 课程内容概要: 1. 前情回顾 2. 通过demo再次复习一下 计算属性 是如何生成 过滤后的数组 3. Vue实例的生命周期(11个钩子) 4. 介绍组件化思 ...

  4. vue中集成的ui组件库_Vue组件可使用Vault Flow通过Braintree集成PayPal付款

    vue中集成的ui组件库 Vue Braintree PayPal按钮 (Vue Braintree PayPal button) Vue component to integrate PayPal ...

  5. umi 解决找不到antd组件库中组件的路径问题 filePath not found of antd/es/float-button

    一.问题 常见的报错: @import '~antd/es/style/themes/default.less'; 在安装的依赖中找不到此时正在使用的antd组件库中的悬浮按钮组件 二.解决方式 我们 ...

  6. React组件库Concis | 组件突破50+,移动端concis起步,新增英语文档,持续更新中...

    您好,如果喜欢我的文章,可以关注我的公众号「量子前端」,将不定期关注推送前端好文~ Concis是什么? 首先,感谢大家的支持,让Concis突破了100star~也是有你们的不断支持,让博主在开源路 ...

  7. Dojo高级Web2.0 UI组件库---Tree组件

    Tree组件可以把有层次关系的数据用树状结构展现出来,就如同 Windows 系统的资源浏览器.Tree有两个模板,一个是Tree模板,一个是TreeNode模板,应该说Tree模板就是一个容器,里面 ...

  8. atom-design(Vue.js移动端组件库)手势组件介绍

    介绍 atom-design经过几个月的开发,以及这段时间的修复bug,对js,css压缩,按需引入处理等等的性能优化,现在已经逐渐完善.做这套UI考虑到很多性能的问题,以及如何让开发者更自由.更简单 ...

  9. 基于Vue.js的iView组件库table组件内render 里面 tab 里面的单选

    先上效果图: 打印选中的结果: 代码如下: <template><div><!-- 列表信息 --> <div class="listfile&qu ...

最新文章

  1. 高效精细化管理企业工单
  2. python开始print_当你使用print时,Python是怎么运行的
  3. dubbo的学习使用,第一章
  4. Android中关于线性布局基线对齐的讲述
  5. 3月30日作业:采购管理、信息管理和配置管理
  6. 【Python爬虫学习笔记11】Queue线程安全队列和GIL全局解释器锁
  7. linux查询内存条个数,linux下查看内存条数及每根内存大小的实现方法(推荐)
  8. 所选元素非联通_非固化橡胶沥青防水涂料与耐根穿刺防水卷材(沥青基)施工要点...
  9. 【超直白】三分钟创建一个小程序
  10. Jmeter 常用断言使用
  11. android关闭应用及获取运营商ISP,判断sim卡属于哪个运营商
  12. Flink Remote Shuffle 开源:面向流批一体与云原生的 Shuffle 服务
  13. CentOS 升级现有PHP版本
  14. WPS中表格中上下线的磅数调整问题-三线表制作
  15. 投资学U20 期权市场与交易策略 习题解读
  16. Windows引导修复
  17. Apache Kylin PMC 马洪宾:开源,就是一场“螺旋上升”的旅程
  18. MMKV:微信团队开源的轻量级存储方案
  19. 《惢客创业日记》2021.08.06-09(周五)惢客与征信的区别(下)
  20. qml----Model/View入门(四)XmlListModel

热门文章

  1. 计算机个人简历范文英文,计算机专业优秀个人英文简历范文【三篇】
  2. 计算机好多个页面,电脑上要是打开好几个网页,关闭一个页面其他的全部都关掉了。...
  3. (四) Window10任务管理器被禁用的办法
  4. 【画学numpy】1.numpy数组初识
  5. 如果用户的计算机的配置较差,买电脑怎么看配置?电脑购买须知【详解】
  6. C/C++基础讲解(九十一)之游戏篇(模拟扫雷游戏)
  7. 雷电模拟器python编程接口_【Python实践】_接口模拟器
  8. iPhone6和iPhone6 Plus 尺寸
  9. 大数据培训之旅——Oracle-8(存储过程,权限)
  10. Android登录系统设计