### Field 输入框
输入框组件一般和表单控件 uni-form 配合使用,也可以单独使用,用于实现输入与校验,包括 "text" 和 "textarea" 类型,组件名:``uni-field``,代码块: uField。
### 平台差异说明
暂不支持在nvue页面中使用
### 组件使用注意事项
为了避免错误使用,给大家带来不好的开发体验,请在使用组件前仔细阅读下面的注意事项,可以帮你避免一些错误。
- 组件需要依赖 `sass` 插件 ,请自行手动安装
- 组件校验需要依赖 `uni-forms` 组件的`forms-rule`属性,`uni-field` 组件暂时不支持单独校验内容
- 组件提供了右侧按钮的插槽,可传入 ``slot="right"``的标签或组件,例如发送验证码的按钮:````
- 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
### 使用方式
#### 方式1 (推荐)
`HBuilderX 2.5.5`起支持 `easycom` 组件模式。在使用 `uni-ui` 的时候,只要[`uni-ui` 组件](https://ext.dcloud.net.cn/plugin?id=55) 安装在项目的 `components` 目录下,并符合 `components/组件名称/组件名称.vue` 目录结构。就可以不用引用、注册,直接在页面中使用 `uni-ui` 组件
`easycom` 组件模式的好处在于不管 `components` 目录下安装了多少组件,`easycom` 打包后会自动剔除没有使用的组件,对组件库的使用尤为友好,组件库批量安装,随意使用,自动按需打包。 关于 `easycom` 更详细内容 [参考文档](https://uniapp.dcloud.io/collocation/pages?id=easycom)
#### 方式2(vue-cli)
**初始化项目**
如果是使用 `HBuiderX` 创建的项目,需先执行以下命令初始化:
```
npm init -y
```
**安装 uni-ui**
```
npm install @dcloudio/uni-ui -D
```
在 ``script`` 中引用组件
```javascript
import uniField from '@/components/uni-field/uni-field.vue'
export default {
components: {uniField}
}
```
#### 方式3(vue-cli + easycom)
使用 `方式2` 安装好 `uni-ui` 之后,需要配置 `easycom` 规则,让 `npm` 安装的组件支持 `easycom`
打开项目根目录下的 `pages.json` 并添加 `easycom` 节点:
```javascript
// pages.json
{
"easycom": {
"autoscan": true,
"custom": {
// uni-ui 规则如下配置
"^uni-(.*)": "@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue"
}
},
// 其他内容
pages:[
// ...
]
}
```
### 基本用法
在 ``template`` 中使用组件
```html
```
### uni-field 属性说明
**uni-field 属性说明**
属性名 |类型 |默认值 |说明
:-: |:-: |:-: |:-:
type |String | text | 输入框的类型
required |Boolean| false | 是否必填,左边您显示红色"*"号
left-icon |String | - | label左边的图标,限uni-ui的图标名称
icon-color |String | #606266 | 左边通过icon配置的图标的颜色
right-icon |Boolean| false | 输入框右边的图标名称,限uni-ui的图标名称
label |String | - | 输入框左边的文字提示
label-width |Number | 65 | label的宽度,单位px
label-align |String | left | label的文字对齐方式
label-position |String | left | label的文字的位置
clearable |Boolean| true | 是否显示右侧清空内容的图标控件(输入框有内容,且获得焦点时显示),点击可清空输入框内容
placeholder |String | - | 输入框的提示文字
placeholder-style |String | - | placeholder的样式(内联样式,字符串),如color: #ddd"
password |Boolean| false | 是否密码输入方式(用点替换文字),type为text时有效
focus |Boolean| false | 是否自动获得焦点
disabled |Boolean| false | 是否不可输入
maxlength |Number | 140 | 最大输入长度,设置为 -1 的时候不限制最大长度
confirm-type |String | done | 设置键盘右下角按钮的文字,仅在type="text"时生效
clear-size |Number | 15 | 清除图标的大小,单位px
trim |Boolean| true | 是否自动去除两端的空格
name |String | - | 表单域的属性名,在使用校验规则时必填
input-border |Boolean| false | 是否显示input输入框的边框
border-bottom |Boolean| true | 是否显示field的下边框
border-top |Boolean| false | 是否显示field的上边框
auto-height |Boolean| true | 是否自动增高输入区域,type为textarea时有效
**uni-field 事件说明**
事件称名 |说明 | 返回参数
:-: |:-: | :-:
input | 输入框内容发生变化时触发 | value 输入的值
focus | 输入框获得焦点时触发 | event 获取焦点的事件对象
blur | 输入框失去焦点时触发 | event 失去焦点的事件对象
confirm | 点击完成按钮时触发 | value 输入的值
right-icon-click| 通过right-icon生成的图标被点击时触发 | -
click | 输入框被点击或者通过right-icon生成的图标被点击时触发 | -
**插槽**
名称 | 说明
:-: | :-:
leftIcon | 左侧插槽
right | 右侧插槽