VUE3组件库-input组件
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组件相关推荐
- 两步教你用Vue3+TS实现input组件的v-model属性
实现自定义input组件的v-model属性 前言 第一步 第二步 效果 前言 使用过一些ui框架的同学应该都知道input里面的值有一个绑定的v-model属性,这篇文章教大家如何给自己定义的inp ...
- 微信小程序,引入WeUI组件库 扩展组件库
小程序扩展组件库 | 微信开放文档 微信官方文档给了两种weui引入方式: 通过 useExtendedLib 扩展库 的方式引入,这种方式引入的组件将不会计入代码包大小. 可以通过npm方式下载构建 ...
- Vue.js_04_组件_Element组件库_组件通信_PropsDown_EventsUp
Vue.js 四天课程学习笔记_第4天 课程内容概要: 1. 前情回顾 2. 通过demo再次复习一下 计算属性 是如何生成 过滤后的数组 3. Vue实例的生命周期(11个钩子) 4. 介绍组件化思 ...
- vue中集成的ui组件库_Vue组件可使用Vault Flow通过Braintree集成PayPal付款
vue中集成的ui组件库 Vue Braintree PayPal按钮 (Vue Braintree PayPal button) Vue component to integrate PayPal ...
- umi 解决找不到antd组件库中组件的路径问题 filePath not found of antd/es/float-button
一.问题 常见的报错: @import '~antd/es/style/themes/default.less'; 在安装的依赖中找不到此时正在使用的antd组件库中的悬浮按钮组件 二.解决方式 我们 ...
- React组件库Concis | 组件突破50+,移动端concis起步,新增英语文档,持续更新中...
您好,如果喜欢我的文章,可以关注我的公众号「量子前端」,将不定期关注推送前端好文~ Concis是什么? 首先,感谢大家的支持,让Concis突破了100star~也是有你们的不断支持,让博主在开源路 ...
- Dojo高级Web2.0 UI组件库---Tree组件
Tree组件可以把有层次关系的数据用树状结构展现出来,就如同 Windows 系统的资源浏览器.Tree有两个模板,一个是Tree模板,一个是TreeNode模板,应该说Tree模板就是一个容器,里面 ...
- atom-design(Vue.js移动端组件库)手势组件介绍
介绍 atom-design经过几个月的开发,以及这段时间的修复bug,对js,css压缩,按需引入处理等等的性能优化,现在已经逐渐完善.做这套UI考虑到很多性能的问题,以及如何让开发者更自由.更简单 ...
- 基于Vue.js的iView组件库table组件内render 里面 tab 里面的单选
先上效果图: 打印选中的结果: 代码如下: <template><div><!-- 列表信息 --> <div class="listfile&qu ...
最新文章
- 高效精细化管理企业工单
- python开始print_当你使用print时,Python是怎么运行的
- dubbo的学习使用,第一章
- Android中关于线性布局基线对齐的讲述
- 3月30日作业:采购管理、信息管理和配置管理
- 【Python爬虫学习笔记11】Queue线程安全队列和GIL全局解释器锁
- linux查询内存条个数,linux下查看内存条数及每根内存大小的实现方法(推荐)
- 所选元素非联通_非固化橡胶沥青防水涂料与耐根穿刺防水卷材(沥青基)施工要点...
- 【超直白】三分钟创建一个小程序
- Jmeter 常用断言使用
- android关闭应用及获取运营商ISP,判断sim卡属于哪个运营商
- Flink Remote Shuffle 开源:面向流批一体与云原生的 Shuffle 服务
- CentOS 升级现有PHP版本
- WPS中表格中上下线的磅数调整问题-三线表制作
- 投资学U20 期权市场与交易策略 习题解读
- Windows引导修复
- Apache Kylin PMC 马洪宾:开源,就是一场“螺旋上升”的旅程
- MMKV:微信团队开源的轻量级存储方案
- 《惢客创业日记》2021.08.06-09(周五)惢客与征信的区别(下)
- qml----Model/View入门(四)XmlListModel
热门文章
- 计算机个人简历范文英文,计算机专业优秀个人英文简历范文【三篇】
- 计算机好多个页面,电脑上要是打开好几个网页,关闭一个页面其他的全部都关掉了。...
- (四) Window10任务管理器被禁用的办法
- 【画学numpy】1.numpy数组初识
- 如果用户的计算机的配置较差,买电脑怎么看配置?电脑购买须知【详解】
- C/C++基础讲解(九十一)之游戏篇(模拟扫雷游戏)
- 雷电模拟器python编程接口_【Python实践】_接口模拟器
- iPhone6和iPhone6 Plus 尺寸
- 大数据培训之旅——Oracle-8(存储过程,权限)
- Android登录系统设计