当前位置: 首页 > web >正文

iview--使用总结

说在最前面—实测iview有一定的内存泄漏的问题,但并不严重,公司内部项目自己覆盖了select组件来解决了这个问题。

        虽然说这个组件库一些问题,不过作为学习vue以来使用的第一个组件库,对我的帮助还是很大的,另一方面也要归功于他的设计有许多地方无法满足公司业务需求,导致我经常需要去看iview的源码来想办法覆盖iview组件以实现自己的需求。不过他的设计还是值得学习的,我们在设计组件的时候依然可以参考他的设计方式。接下来就总结(吐槽)一下最近在项目中碰到问题以及解决方案。

1、Input

最常用的莫过于输入框Input了,大部分都是和form一起使用,他的clearable属性问题比较大。

一 是没有clear的事件,业务中有一个需求是清空输入框后重新搜索,这里我们也只能监听change事件判断值为空时搜索。

第二个问题就是clearable的时候,使用disabled禁用输入框的clear的按钮却没有被禁用,依然可以点击叉清空输入框,需要手动控制cleaeable为false。

 

2、InputNumber

一没有enter事件,按下回车后进行搜索这个功能就比较麻烦,原来是在外层套一层span在span上加keyup事件,后来发现有更加优秀的办法就是就用native事件,native修饰符会把事件添加到组件的最外层元素上作为原生事件,这么以来觉得input的on-enter有点多余了。

二 精度问题,理想状态是输入框失去焦点后进行四舍五入,但是他这输入框一变化就开始四舍五入,导致用户体验很差,目前都是自己写blur事件手动控制精度,parser和formatter也不好用,行为不好控制。

三 增减按钮没有属性控制开启或关闭,不需要时需要手动覆盖样式display:none

四 没有clearable和input不统一,现在也没有解决

五 没有前后插槽,单位百分号等都是用绝对定位定过去的(parser和formater不好用)

3、Select

select没多少问题,注意多选和远程搜索可以同时使用,唯一的问题多选时样式

还有就是当里面已经有选项,直接复制文字进去文字的位置被label盖住了,这个目前还没有解决

4、form表单

表单的验证是一个难点,在实际场景中,验证逻辑千变万化。复杂一点和需要后端验证的都要用自定义的验证器。

一 循环出来的表单元素的验证,用下图的方式

二 强行触发一个表单元素的验证并且用传入值来验证

三 自定义错误提示

iview的form里错误提示只能是文本,并且高度是固定的,当错误提示比较复杂甚至需要有交互效果时,用view自带的错误提示是无法实现的目前有两种情况

1 验证错误提示超过两行

将原来的固定高度改为自动扩展,根据实际情况调整间距

2  错误提示里有按钮可以点击

将show-message置为false,自己插入错误提示,这里实际上把iview的FormItem代码直接复制了一部分出来进行了修改,主要是为了样式保持一致。

5 Cascader 级联选择框

级联选择框的问题在于,iview对于下拉列表是用v-show控制的,如果数据量较大如全国的地区,会导致页面加载很慢(2-3秒),

现在是把iview的cascader拷贝了一份下来,修改里面的三个v-show为v-if,让下拉框不在页面加载时就渲染出来

6 Table 

table最大的问题就是内存泄漏,每次有table的页面进入后,浏览器的内存占用量就会上升很多而且不会被垃圾回收掉,这个问题还有没有结果。项目过程中遇到过一次进入列表后自动弹出列表的侧弹窗详情,查看源码后发现table内部实际上有点击某行的方法clickCurrentRow,解决方法如下。

 

7 DropDown

dropdown最难受的地方在于他的DropdownItem没有点击事件,虽然说在模板里可以用native事件,但是在render函数里没办法使用native修饰符(可能目前还不知道),所以只能在外面包了一层div,在div上写事件

http://www.xdnf.cn/news/11634.html

相关文章:

  • 抖音越狱版本App下载
  • Verilog基础语法(13)之case语句
  • Element-UI介绍:主题定制、自定义组件和插件扩展
  • OpenCV快速入门:初探
  • Fiddlerd的工作原理与配置
  • JDK安装太麻烦?一篇文章搞定
  • Maven详解(入门到精通)学习maven有这个就够了
  • 传奇GEE引擎版本如何封挂?GEE引擎设置简单的封挂脚本教程
  • 窄带高清技术之百万级并发下的演唱会直播细节修复
  • C#从入门到精通(史上最全,爆肝十万字)
  • 独家:经开区受理京东涉嫌卖假货投诉案,刘强东在日本难掌控业务
  • 程序员福利各大平台免费接口,非常适用!
  • KVM虚拟化
  • 2021年美容师(初级)考试及美容师(初级)考试报名
  • 2019年最新web前端学习大纲及视频链接免费分享
  • 【云计算】6_云数据库产品介绍
  • 2018年第九届C/C++ A组蓝桥杯省赛真题
  • linux 学习
  • 活动预告 | GDG 社区 - Android 11 Meetup 讲师抢先看
  • 机械类岗位面试专业知识54题
  • zsh安装及配置
  • 科大讯飞副总裁刘鹏:人机交互的未来是人人交互?
  • Python能用来做什么?以下是Python的三大主要用途
  • do...while循环概要
  • 【网络安全】sick0s 靶场实践之getshell
  • postgreSQL 操作 教程
  • Android | 广播( Broadcast )
  • 智慧养老照护:科技赋能,让老年人享受更美好的晚年生活
  • c++ make_pairpair
  • 10个常用的软件测试工具,你不容错过