两年前开始接触Vue.js框架,被它吸引轻量级、组件化和友好的API。之后,我将Vue.js和Webpack技术栈引入了我公司(TalkingData)的可视化团队,经过一年多的实践,已经成为整个公司的前端开发规范。同时开源了iView项目,是一套基于Vue.js的优质UI组件库。提供从设计规范、工程建设到国际化的完整解决方案,支持SSR。在众多志愿者的帮助下,该文档被完整翻译成英文,在Vue开发者社区中颇受欢迎。去年7月28日,一个名为iView(github.com/iview/iview)的项目获批,今天是它的一周岁生日。回想一下,它一开始只是作为团队组件库开发的。经过一年的风风雨雨,它已经成为Vue社区中最受欢迎的组件库之一。它还在GitHub上获得了近8000个Star,npm每月安装量超过10k。当然,这一切的取得,都离不开公司对我的支持,离不开Vue社区的活跃。既然是周年纪念日,就让我们玩得开心吧。iView官网改版。从今天开始的一周,你可以在首页发弹幕,快来和五湖四海的朋友一起聊天(chě)(dàn)。2.0iView一周年,对开发者来说最好的消息就是我们终于发布了第一个正式版2.0。在过去的4个月里,我们连续发布了19个rc版本。其实我们可以提前发布2.0正式版,在此基础上进行迭代。延迟发帖只是为了把最好的版本带给大家。当然,即便今天发布了正式版,也还有很多问题有待解决。一个好的组件库需要不断的打磨。回顾一下iView从1.0到2.0的重要变化:最重要的是支持Vue2,进而支持SSR和Nuxt.js,扩展常用组件:Tablecells的渲染基于Vue的RenderFunction,支持扩张;Select支持远程搜索;Cascader支持异步和搜索。有100多个细节优化。2.0正式版增强了Table组件,优化了8个问题。所有的浮层组件都增加了transfer属性,可以插入也可以不插入body,使用起来更加灵活。具体更新内容可以查看更新日志。说说英文版上个月我们把iView的文档全部翻译成英文,花了3个多月才完成。随着英文版的推出,更多的国外开发者也参与到了GitHub的讨论中,相信以后会有更多来自国外的贡献者。上图是Vue社区一位国外开发者的评价。英文版的翻译离不开社区的贡献。特别感谢三位热心的志愿者lcx960324、rijn和BigChief45。版本号iView的故事从2.0版本开始,版本代号将以获得苹果设计大奖的游戏或优秀的独立游戏命名。开源项目的每个版本代号都有自己的故事。作为一个热爱iOS独立游戏的玩家,每次看到画风精美、剧情动人的好游戏都会流连忘返并推荐给身边的同事,所以用它命名也是对独立游戏的一种支持.2.x的第一个版本(2.0)代号为Leo'sFortune。这仅仅是个开始。iView已经帮助前端开发工程师加速完成中后端业务开发,但作为一个有追求的大数据可视化团队,这只是一个开始。下半年,TalkingData可视化团队将继续开源两个重量级项目:InMap:基于Canvas和WebGL的地理信息可视化框架InChart:基于Vue.js和eCharts的图表标准库,这两个项目都将带来数据可视化的好消息其中,InMap值得详细介绍。其实它的历史早于iView,但一直是闭源在TalkingData内部使用。这一次,我们也在API和易用性方面重构后努力开源。在地理可视化的过程中,由于地图的矢量数据不是一次性加载的,而是随着用户的请求,将矢量数据和瓦片一起加载到本地。在这个过程中,有两部分计算限制了可视化绘图的速度。一是各种数据的坐标转换,二是各种数据的可视化。目前InMap使用webworker在后台对矢量数据进行多线程计算,保证页面响应用户同时计算各种数据。对于其他适合并行计算的坐标数据,使用GPU进行转换。绘制可视化层使用WebGL。下图是一个基于InMap的全3D地球,可以实现自传、公转、随意拖动旋转、放大缩小等三维效果。InMap和InChart预计几个月后与大家见面,敬请期待!对开源现状的一些思考能够全身心地参与到一个开源项目中,见证它从0到1的变化,对我来说确实是一件幸运的事情,因为从这次开源经历中,我学到了太多太多。成就了很多开发者。开源是一件很有意义的事情,但是国内很多开发者有个坏习惯,他们统称为“伸手党”。比起国内很多开发者提出的问题,我更愿意回答国外朋友的英文问题。这不是因为英语看起来很好,而是因为外国朋友的问题非常友好,经过深思熟虑。在求知的态度上,这对中国人来说实在是不好。如果你看iView这个项目,每天都会收到几十封邮件,大部分不按照issueguide的要求,关掉,还经常骂人,一阵负能量。请问,这些不按要求,态度恶劣的人,你们为开源做了什么贡献?开源是免费的,但是用了开源产品不代表你就是高手,这么牛逼,何不自己造轮子呢。这种问题不仅仅发生在iView上,我也和VUX(一个知名的移动端Vue组件库)的作者进行了深入的讨论,在VUX社区中也会有很多类似的负能量。中国应该有很多这样的不良现象。VUX的readme中唯一一篇曾今写的中文文章就是为这群人写的:相信提issue的朋友初衷都是好的,都是来解决问题的,只有聪明人真正想解决问题的人,他们会花一些时间仔细填写问题的内容。如果你付出,你就会得到回报。我会认真回答任何严肃的问题,那些连代码格式化都不会的随意提问就随便关掉。开源是为了全世界,所以请善待GitHub社区。最佳实践从2016年底开始,TalkingData的很多新项目开始使用iView,一些核心项目也逐渐开始使用iView进行重构。以下是部分项目截图:用户语音TalkingData数据工程师王翔:上半年,部门两大重要产品线AppAnalytics和SmartDataMarket(SDMK)完成了Vue+iView的产品重构,以及效果显着。下半年,其他几款重要产品也计划引入Vue+iView技术栈。iView的引入保证了各产品线视觉上的统一。设计人员几乎不需要参与产品开发过程,降低了人力成本;工程师可以更专注于业务,避免在业务代码之外维护基础组件。大大缩短产品开发周期。强烈建议采用Vue技术栈的团队也尝试iView。感谢iView!TalkingData数据工程师杨涛:从使用iView0.9.x版本到现在的2.x版本,我见证了iView从实现各种组件到丰富组件功能的每一步,大大提高了团队运营中项目开发的效率。我们在许多项目中使用了iView的各种组件。其全面的文档和示例代码降低了学习成本。同时,iView也在高频率更新完善。选择iView作为前端UI组件,使用方便,大大加快了项目速度。在进步的同时,更多的是感受到iView的工匠精神。含云有品产品经理关京凯:我是一个热爱搞技术的产品经理。看到iView后,我对iView的整体API和UX设计印象深刻。这是非常容易使用。起初,我只是在产品设计中使用iView,以便快速实施。后台Demo,iView保持产品交互和UI高度一致。经过对公司前端团队的培训,前端工程已经逐步完成。现在公司的产品已经使用Vue.js和iView进行了重构。iView的源代码非常规范,二次开发友好。目前正在结合公司现有业务添加一些组件,主要针对数据可视化和部分业务组件的封装。iView给公司带来的不仅仅是前端技术的创新,更重要的是推动了产品迭代的速度。因为iView的成功引入,我也得到了公司层面的支持,将设计和前端整合起来,组建了UED部门。再次感谢iView框架带来的便利。综上所述,接下来要做的事情还有很多。我们将通过iView在大量实战项目中的使用,不断完善和提高组件的易用性和稳定性,同时也会让UI细节更加规范美观。还要特别感谢所有为iView项目付出努力的贡献者。一个好的项目需要大家共同创建和维护。也借此文呼吁有工匠精神、热爱开源的开发者加入iView项目,将其打造成世界一流的优秀组件库。福利为庆祝iView一周年和2.0版本发布,Vue.js系列课程全部6.6元,为期一周。特别鸣谢最后感谢以下技术社区长期以来对iView开源项目的推广和支持(排名不分先后):掘金——帮助开发者成长的社区码云——专业高效的代码托管·协同开发平台LaravelChina-优质的Laravel和PHP开发者社区SegmentFault-中国领先的开发者技术社区前端晨读班
