Vue组件 - 智能联想输入框

已经有不少成熟的智能输入框组件,如Form.js。可是如今MVVM框架,如vue、react的为了实现双向数据绑定会重绘全部的元素,这样就会难以兼容使用。因此笔者开发了Vue组件-智能输入框。css

包含的功能大同小异:vue

  1. 得到焦点时显示全部备选项
  2. 失去焦点时隐藏备选项面板
  3. 输入字符后,检索可能的备选项
  4. 支持上下键和回车键进行选中
  5. 支持点击选中
  6. 支持多选
  7. 以逗号进行多选的分割

更新日志

2019-06-10

  1. 取消依赖jQuery和bootstrap
  2. 上传到github进行代码管理
  3. 增长示例文件和使用说明

代码托管

github地址:https://github.com/LeonSage/s...react

示例:

图1:组件化的调用

图片描述

图2:实际应用的场景

图片描述

依赖

依赖vue,能够使用CDNhttps://cdnjs.cloudflare.com/...git

使用方式

  1. 在页面中引入vue.js
  2. 在页面中引入smartInput.jssmartInput.css
  3. 在你的页面中创建vue对象:new Vue({el: '#root'})
  4. 在root根组件里直接添加<smart-input>标签便可调用该组件
# 调用组件
<smart-input :props="provinceList" @collect="collectProvince"></smart-input>

接口文档

咱们只须要在初始化的vue对象里设置好该组件须要的相关属性便可生效:github

provinceList: {
    list: ['北京市','天津市','上海市','重庆市','河北省','山西省','辽宁省','吉林省'],
    multiple: true,
    value: '我是初始值'
},

同时须要提供一个函数用于支持数据收集和回传:ajax

methods: {
    // 跟智能输入框同步选中的业务
    collectProvince(data) {
        console.log(data);
    }
}

暂时只支持这3个参数。bootstrap

后续须要完善的功能:框架

  1. 支持自定义分割符,添加参数delimiter: '-'
  2. 支持数据校验(不合法的不容许输入),添加参数stric: true
  3. 完善接口文档和补充在线测试用例
相关文章
相关标签/搜索