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…

检验杜宾 瓦森检验法R语言_EVIEWS序列相关检验2.pdf

EVIEWS序列相关检验2序列相关检验、处理及案例内蒙古科技大学经济与管理学院边璐 2011.11.10内容安排• 自相关性的检验• 自相关性的解决方法• 案例分析自相关性的检验• 1、图示法(上节课已说过)• 2、DW检验• 3、回归检验法• 4、高阶自相关性检验2、杜宾-瓦森(Durbin-Wat…

连续出现最长次数

输入第一行有一个整数n(n < 1000)&#xff0c;为数组元素的个数。第二行有n个整数&#xff0c;整数之间以一个空格分开。输出输出最长平台的长度。样例输入 10 1 2 2 3 3 3 4 5 5 6 样例输出 3 #include<iostream> using namespace std; int main() {int a[1001],n;ci…

家用计算机机箱怎么选,一般家用电脑主机买什么配置的比较好

组装台式电脑配置最好的方法&#xff1a;实用性机型建议&#xff1a;首选1&#xff1a;intel G1620双核H61M主板。(价格低廉性能不弱&#xff0c;超值)首选2&#xff1a;intel G1840双核H81M主板。(核心显卡性能比G1620更强)中级机型建议&#xff1a;首选1&#xff1a;intel G3…

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

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

angular路由传递参数_在angular4.0路由传递获取参数的最优方案

这次给大家带来在angular4.0路由传递获取参数的最优方案&#xff0c;在angular4.0路由传递获取参数的注意事项有哪些&#xff0c;下面就是实战案例&#xff0c;一起来看一下。研究ng4的官网&#xff0c;终于找到了我想要的方法。我想要的结果是用‘&拼接参数传送&#xff0…

计算机基础及ms应用在线,全国一级计算机基础及MS Office应用课件 (2).pdf

全国计算机等级考试一级教程计算机基础及MS Office应用考试大纲考试大纲考试大纲考试大纲考试大纲考试大纲考试大纲考试大纲考点1 &#xff1a;计算机组成结构1946年世界上第一台名为ENIAC的电子计算机诞生于美国宾夕法尼亚大学。考点2 &#xff1a;冯诺依曼概念 冯诺依曼理论…

破坏您的JVM

正如我们最近发现的那样&#xff0c;全面测试可能有害。 扩展测试覆盖范围导致我们仅花费一行代码就进行了几个小时的调试会话。 使调试特别令人不愉快的是&#xff0c;该代码不仅崩溃了所部署的JVM&#xff0c;而且还破坏了其下的虚拟机和/或物理机。 因此&#xff0c;请自行…

ulli*3 实现翻书动画效果

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

软件结构B/S和C/S

C/S(Client Server)结构的软件&#xff1a; 比如&#xff1a; QQ、 极品飞车、 飞信 、 迅雷 缺点&#xff1a;更新的时候需要用户下载更新包然后再安装&#xff0c;程序员则需要开发客户端与服务端。优点&#xff1a; 减轻服务端的压力&#xff0c;而且可以大量保存数据…

对hash签名失败_vue项目中微信jssdk在ios签名失败

一、问题描述1. vue项目中微信jssdk签名时&#xff0c;在安卓和ios是有差异的&#xff0c;签名时使用的urlwindow.location.href.split(#)[0],此时在安卓没问题&#xff0c;在ios会导致签名失败。因为在安卓中应该拿去签名的URL就是每个页面的URL&#xff0c;在ios中拿去签名的…

cookie,session 会话跟踪技术

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

嵌入Maven

这是一个非常罕见的用例&#xff0c;但有时您需要它。 如何在应用程序中嵌入Maven&#xff0c;以便可以以编程方式运行目标&#xff1f; 简短的答案是&#xff1a;这很棘手。 我涉足了我的java webapp自动同步项目的问题 &#xff0c;有时我决定不嵌入它。 最终&#xff0c;我…

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是类…

Python特殊函数

exec()&#xff1a;执行动态的字符串代码&#xff0c;和eval类似&#xff0c;不过eval接受表达式。 它可接受&#xff1a;1.代码字符串 2.文件对象 3.代码对象 4.tuple >>> exec(a2) >>> a 2 >>> exec(print(\5\)) 5 eval()&#xff1a;接受一个字…

Java7 –回顾

我开始写博客文章&#xff0c;介绍即将发布的Java8版本中的新增功能 &#xff0c;并认为我将从快速回顾一下Java7带给我们的内容开始。 Java7于2011年7月发布&#xff0c;被描述为“更具进化性而非革命性”。 “有一些重大的改进&#xff0c;但是并没有真正令人惊叹或突破性的…

皖西学院计算机证书,下半年皖西学院计算机等级考试报名时间

根据《皖西学院2017下半年全国计算机等级考试报名通知》得知&#xff0c;2017下半年全国计算机等级考试报名时间7月3日上午09:00分至7月18日17点30分。下面yjbys小编就为大家分享一篇皖西学院计算机等级考试报名具体内容&#xff0c;希望大家认真阅读!一、报名及网上缴费时间&a…

RabbitMQ安装以及集群部署

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