iView 一周年了,同时发布了 2.0 正式版,但这只是开始...

两年前,我开始接触 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.0

iView 一周年,对于开发者来说最好的消息,就是我们终于发布 2.0 的第一个正式版。在过去的 4 个多月里,我们连续发布了 19 个 rc 版,其实早可以发布 2.0 正式版的,并在此基础上迭代。迟迟不发,就是想把最好的一个版本带给大家。当然,即使今天发布了正式版,依然还有不少问题等待解决,一个好的组件库是需要经历不断磨练。

来回顾一下,从 1.0 到 2.0,iView 有哪些重要改变:

最重要的当然是支持 Vue 2 了,其次支持了 SSR 和 Nuxt.js,对常用组件进行了扩展:Table 单元格的渲染基于 Vue 的 Render 函数,并支持展开;Select 支持远程搜索;Cascader 支持异步和搜索。还有 100 多项细节优化。2.0 正式版,更是加强了 Table组件,优化了其 8 个问题,所有的浮层类组件都增加了 transfer 属性,可以选择是否将其插入到 body 内,使用更灵活。具体的更新内容可以查看更新日志。

聊聊英文版


上个月,我们已将 iView 文档全部翻译为英文,前前后后进行了 3 个多月才算完成。有了英文版后,更多的国外开发者也参与到 GitHub 讨论之中,相信接下来会有更多来自国外的 contributors。


上图是来自 Vue 社区一位国外开发者的评价。

英文版的翻译离不开社区的贡献,在此特别感谢 lcx960324、rijn 和 BigChief45 三位热心志愿者。

版本号的故事

iView 从 2.0 版本开始,版本代号将以获得过 Apple Design Awards 的游戏或优秀的独立游戏来命名。

每个开源项目的版本代号都有它的故事。作为一枚热爱 iOS 独立游戏的玩家,每每看到画风精致、剧情动人的好游戏都会流连忘返,推荐给身边的同事,所以用它来命名,也算是对独立游戏的一种支持。

2.x 的第一个版本(2.0)代号是 Leo's Fortune(里奥的财富)。

这只是开始

iView 已经很好地帮助前端开发工程师们加速完成中后台业务开发,但作为一个有追求的大数据可视化团队,这仅仅只是一个开始。下半年,TalkingData 可视化团队将继续开源两个重磅级项目:

  • InMap:基于 Canvas 和 WebGL 的地理信息可视化框架
  • InChart:基于 Vue.js 和 eCharts 的图表标准库

这两个项目都会给数据可视化带来福音,其中值得详细介绍的是 InMap,事实上它的历史要早于 iView,只是一直属于闭源状态,在 TalkingData 内部使用。这次也是鼓足了劲,在 API 和易用性上进行重构后开源。

在地理可视化的过程中,因为地图的矢量数据不是一次性加载的,矢量数据是随着用户的请求,随着瓦片一起加载到本地的。在这个过程当中存在两部分的计算比较多,限制了可视化绘制的速度,一个就是各种数据的坐标转换,另一个就是各种数据的可视化。目前 InMap 中使用了 web worker 在后台对矢量数据使用多线程计算,保证页面对用户响应的同时对各种数据进行计算,对于其他适合并行计算的坐标数据采用 GPU 进行转换。绘制可视化层使用了 WebGL。

下图是基于 InMap 实现的一个全 3D 地球,可以实现自传、公转、随意拖拽旋转、放大缩小等立体效果。

InMap 和 InChart 预计会在数月后和大家见面,敬请期待!

对开源现状的一些思考

能够完整参与一个开源项目,见证它从 0 到 1 的改变,对我来说确实是一件幸运的事,因为从这段开源经历里,学到了太多的知识,也结实了很多开发者。开源是一件很有意义的事情,然而很多国内开发者却有一个不好的习惯,他们被统称为“伸手党”。相比很多国内开发者提出的 issues,我更喜欢去解答国外友人的英文 issues,这不是因为英文看起来有多高大上,而是国外朋友的提问都很友善,而且是经过深思熟虑的。在求知的态度礼帽上,这点国人做的确实不好,如果你 watch 了 iView 的项目,每天会收到几十封邮件,其中大多没有按照 issue guide 的要求来问,close 掉,还经常被骂,一阵负能量。试问,这些不按要求问题,还态度恶劣的人,你们为开源做过什么贡献呢?开源是免费,但不是说用了开源产品就是大爷,那么牛逼,干嘛不自己造轮子呢。

这样的问题不仅仅发生在 iView 上,我同 VUX(知名移动端 Vue 组件库) 的作者也深刻探讨过,在 VUX 的社区也会带有不少类似的负能量。这种不良现象在国内应该还有很多,VUX 的 readme 曾今写的这段仅有的中文,正是写给这部分人看的:


我相信提 issue 的朋友初衷都是好的,都是来解决问题的,只是聪明的、真正想解决问题的人,都会花费一些时间来认真填写 issue 内容。付出就有回报,任何一个认真的提问,我也会认真的回答,而那些随随便便提的问题,连代码格式化也不会的也会被随随便便关掉。

开源是世界的,所以请善待 GitHub 社区。

最佳实践

从 2016 年下旬开始,TalkingData 的众多新项目开始使用 iView,部分核心项目已逐步开始使用 iView 重构。以下是部分项目的截图:

使用者的心声

TalkingData 数据工程师 王祥:
上半年,部门的两条重要产品线 App Analytics 和智能数据市场 (SDMK),用 Vue iView 完成了产品重构,效果显著。下半年,其它几个重要产品,也计划引入 Vue iView 技术栈。iView 的引入,保证了各产品线的视觉统一,设计师几乎不需要参与到产品研发过程,降低了人力成本;工程师们可以更专注在业务上,避免了除了业务代码还要维护基础的组件,极大的缩短了产品研发周期。强烈建议采用 Vue 技术栈的团队,也尝试下 iView。感谢 iView!

TalkingData 数据工程师 杨涛:
从使用 iView 0.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 开源项目的推广与支持(排名不分先后):

  • 掘金 - 一个帮助开发者成长的社区
  • 码云 - 专业、高效的代码托管 · 协作开发平台
  • Laravel China - 高品质的 Laravel 和 PHP 开发者社区
  • SegmentFault - 中国领先的开发者技术社区
  • 前端早读课

更多专业前端知识,请上 【猿2048】www.mk2048.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/366611.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hawtio和Apache JClouds

介绍 我最近花了一些时间为Hawtio开发 Apache Jclouds插件。 尽管还有很多待完成的工作,但我无法激动,想分享…… 这个Hawtio到底是什么? 每当我注意到一个很酷的开源项目时,我通常都会订阅邮件列表,以便我可以更好地…

【转】安全加密(一):这些MCU加密方法你都知道吗?

本文导读 随着物联网和边缘计算的出现,五花八门的MCU也被应用其中,如何保证我们的程序安全和知识产权不受侵犯呢,本文我们将对主流MCU的程序加密进行讲解,希望能够帮助你选择最适合自己应用的微处理器。 1. MCU加密 通常所说的MC…

浅谈Vue内置component组件的应用场景

官方的说明 渲染一个“元组件”为动态组件。依 is 的值&#xff0c;来决定哪个组件被渲染。 <!-- 动态组件由 vm 实例的属性值 componentId 控制 --> <component :is"componentId"></component>具体可以官网文档中的 动态组件内置的组件compone…

ulli*3 实现翻书动画效果

按惯例&#xff0c;上GIF&#xff1a;重现&#xff1a;https://codepen.io/anon/pen/JJBxOm 这是我今天参加面试时候&#xff0c;面试官让我做的一道题&#xff0c;面试官坐我旁边看我现场做&#xff0c;然而我比较菜&#xff0c;回来后才做出来…… 来看看HTML部分&#xff1a…

cookie,session 会话跟踪技术

会话跟踪技术 1 什么是会话跟踪技术 我们需要先了解一下什么是会话&#xff01;可以把会话理解为客户端与服务器之间的一次会晤&#xff0c;在一次会晤中可能会包含多次请求和响应。例如你给10086打个电话&#xff0c;你就是客户端&#xff0c;而10086服务人员就是服务器了。…

200行代码写一个简易的dva

在美团实习的时候&#xff0c;第一次接触到dva这样的react框架&#xff0c;回学校的时候&#xff0c;就想有机会自己实现一下这样的框架&#xff0c;虽然自己水平有限&#xff0c;但是可以试一试哈。 目标是实现dva model的同步和异步 dispatch action。 看看 dva 的构成 let…

linux 切换root_Linux运维服务篇:流量监控工具iftop部署及详细参数分享

Linux流量监控工具--iftop介绍&#xff1a;在类Unix系统中可以使用top查看系统资源、进程、内存占用等信息。查看网络状态可以使用netstat、nmap等工具。若要查看实时的网络流量&#xff0c;监控TCP/IP连接等&#xff0c;则可以使用iftop。一、iftop是什么&#xff1f;iftop是类…

RabbitMQ安装以及集群部署

本次记录安装RabbitMQ的过程&#xff0c;只针对MAC下单机版安装、单机集群安装方法以及配置haproxy负载均衡。 RabbitMQ单机版本安装RabbitMQ单机集群安装方法&#xff08;适合开发练习&#xff09;RabbitMQ配置haproxy负载均衡RabbitMQ集群测试&#xff08;待续&#xff09;参…

r 保留之前曲线_生存曲线居然能够批量绘制了

生信分析第三步&#xff1a;生存曲线批量绘制各位解螺旋的小伙伴大家好&#xff0c;我是先锋宇&#xff0c;欢迎大家来到每周日的先锋宇专栏&#xff0c;经过前两期推文的学习&#xff0c;很多小伙伴都私信我说从先锋宇助教的专栏很接地气&#xff0c;自己能够开始慢慢处理数据…

基于vue自动化表单实践

背景 B端系统表单较多&#xff0c;且表单可能含有较多字段字段较多的表单带来了大片HTML代码在大片HTML中&#xff0c;混杂着参数绑定、事件处理等逻辑&#xff0c;不利于维护技术栈 Vue&#xff0c;Element(默认表单布局)适合中后台项目快速开发 目标 通过json配置快速生成表单…

天津科技大学计算机学院复试分数线,2021天津科技大学研究生复试分数线

2021天津科技大学研究生复试分数线已经公布&#xff0c;包含学术学位、专业学位、专项计划复试分数线&#xff0c;供大家参考&#xff0c;如意了在此祝广大考研学子都能顺利上岸。一、2021年天津科技大学研究生分数线1&#xff0e;专业分数线各学院严格执行《2021年全国硕士研究…

使用Eclipse Hibernate插件逐步为POJO域Java类和hbm自动生成代码

概述&#xff1a; 在本教程中&#xff0c;我们将使用Eclipse Hibernate工具自动生成域对象和相应的hbm xml文件。 如果您正在处理大型或中型项目&#xff0c;并且开始时有超过5个以上的表&#xff0c;则可能会发现此插件是自动生成映射域对象java文件和相应* .hbm.xml的绝佳工具…

idea本地跑如何看gc日志_线上故障如何快速排查?来看这套技巧大全

简介&#xff1a;有哪些常见的线上故障&#xff1f;如何快速定位问题&#xff1f;本文详细总结工作中的经验&#xff0c;从服务器、Java应用、数据库、Redis、网络和业务六个层面分享线上故障排查的思路和技巧。较长&#xff0c;同学们可收藏后再看。前言线上定位问题时&#x…

从零打造在线版H5页面生成器

想必你一定使用过易企秀或其它微场景生成工具制作过炫酷的h5页面&#xff0c;除了感叹其神奇之处有没有想过其实现方式呢&#xff1f;从设计者的角度来看待问题&#xff0c;会有不一样的收获&#xff0c;本文将从零开始&#xff0c;使用node技术来设计实现一款精简版的易企秀 G…

使用Struts2,Hibernate和MySQL BLOB开发个人迷你相册应用程序–第1部分

概述&#xff1a; 在本研讨会中&#xff0c;我们将开发一个Web应用程序&#xff0c;可用于创建漂亮的照片库。 您可以将其托管在Web服务器中&#xff0c;也可以在自己的PC中使用以维护和管理照片集。 使用本教程&#xff0c;您将能够了解与Struts2和Hibernate相关的以下重要内容…

基于 Webpack2、Vue2、iView2 的可视化脚手架 iView Cli 发布 2.0 版本

谷歌今天发布了一系列“性感”的软件&#xff0c;我们也发布了一款大家期待已久的开发者工具&#xff0c;同样很性感 &#xff1a;) iView 2.0 已经发布有两个月了&#xff0c;在 2.0 发布后&#xff0c;npm 下载量、issues 数量都提升了很多&#xff08;可以 watch 下项目&…

在OSGi中为Karaf构建Camel-CXF REST服务–组播和聚合

请查看我在Karaf的OSGi中构建普通CXF服务&#xff08;不使用Camel&#xff09;的其他文章 。 这是有关如何 创建一个CXF REST服务 使用骆驼多播&#xff08;并并行化&#xff09;传入的请求 来自两个不同服务的源数据 汇总响应并 最后将合并结果作为JSON返回给最终用户。…

cgcs2000大地坐标系地图_为什么要从北京54和西安80统一到CGCS2000?测绘人必知!...

导 读北京54坐标和西安80坐标&#xff0c;使用了很多年&#xff0c;为何要统一成CGCS2000坐标&#xff1f;启用CGCS2000坐标有何重大意义&#xff1f;概述北京54坐标系和西安1980坐标系的建立极大的促进了新中国测绘的发展,然而随着空间大地测量技术的兴起,这两种经典的局部大地…

Amazon Elastic Map Reduce使用Apache Mahout计算建议

Apache Mahout是一个“可扩展的机器学习库”&#xff0c;其中包含各种单节点和分布式推荐算法的实现。 在我的上一篇博客文章中&#xff0c; 我描述了如何在单个节点上实现在线推荐系统来处理数据。 如果数据太大而无法放入内存&#xff08;> 100M首选项数据点&#xff09;怎…

基于element-ui实现table可配置化

写在前面 感谢 饿了么前端团队提供组件化框架elememt-ui&#xff0c;本文基础组件使用element-ui。 大背景 在开发一些系统过程中&#xff0c;使用table作数据展示在所难免。先来看看el-table组件。 非常简单易用的组件&#xff0c;根据提供的data数据&#xff0c;配置table…