从零实现Vue的组件库(八)- Input 实现

基于原生的 HTML 标签进行拓展的 Input 组件。

Input 组件一般是一个组件库的基础,很多组件都需要依赖它,所以该组件的特点在于:
  • 支持原生的功能,结合 this.$slots 拓展 slot,便于二次封装;
  • v-modelv-on=$listeners的相关处理;
  • 样式的封装以及抽离。

1. 实例

代码


<fat-input placeholder="请输入内容" v-model="inputValue" />


<fat-input placeholder="请输入内容">
    <template slot="prepend">
        <div class="prepend-part c-size-s">Http://div>
    template>

    <template slot="append">
        <div class="append-part c-size-s">.comdiv>
    template>
fat-input>
复制代码

实例地址:Input 实例

代码地址:Github UI-Library

2. 原理

首先拓展 type 属性,添加值为 textarea 的状态,设计该组件的结构为 input 如下

"['input-wrapper']">