[关闭]
@Rays 2018-04-07T11:48:02.000000Z 字数 3903 阅读 1374

VueConf.US大会上与Gregg Pollack的问答

JavaScript


摘要: InfoQ择机采访了Pollack,采访内容涉及:Vue.js的内部机制、他对Vue.js社区的看法、学习Vue的最好方法,以及导致Vue成功的更多原因。

作者: Kevin Ball

正文:

Vue.js的使用率一直在突飞猛进。近期据一份来自bestof.js.org的调查显示,它是2017年GitHub上最受欢迎的开源项目。据VueMastery.com的创始人Gregg Pollack说(他也是今年VueConf.us大会的演讲者之一),Vue成功的一个主要原因,在于其核心团队聚焦于使Vue渐进增量采纳(incrementally adoptable)。

InfoQ择机采访了Pollack,采访内容涉及:Vue.js的内部机制、他对Vue.js社区的看法、学习Vue的最好方法,以及导致Vue成功的更多原因。

InfoQ: 在创立Vue Mastery之前,您还创立了CodeSchool和StarterStudio等面向更通用技术的培训公司。您为什么要创立这样一家专注于Vue技术的公司?

Gregg Pollack: 我创立的公司名为Code Pop,我意识到我个人影响世界的最佳途径(无论是帮助找到治愈癌症的方法,还是让下一位人类登陆去火星),是去加速对最具创新开源技术的采纳。我所能采用的加速方式是通过媒体和内容向人们传授技术。几个月前,我们着手对一系列各异的标准开展研究。我们的目的是确定这样的技术,它们处于最佳的位置、尚未成为主流、仍处于早期采纳阶段,并且确实需要在内容和媒体上得以提升才能真正地成为主流技术。

由此,我们在查看了各种各异的标准之后选择了Vue。因为Vue拥有一个非常健康的生态系统,具备良好的构建势头。而且我认为大家已经看见,根据“State of JavaScript”调查,大约有43%的JavaScript开发人员对学习Vue有兴趣。我们认为Vue是最多人有兴趣的学习的。好的,这就是我选择Vue的原因。对于Code School也同样如此,因为我们对所有非常好的技术只做非常基本而非深入的介绍,总会有人从中选择开始学习的技术。但这样做的缺点是很多客户在完成初始课程后就会离开,然后他们在有想要学习的课程是会再次出现然后再次离开。这就是为什么说PluralSite收购Code School是非常有意义的原因之一。因为Pluralsite具有我们所不具备的庞大软件库。但我总是十分好奇,如果我们选择了一种特定的技术并深入研究,我们是否可以创建一个社区、一个关注点,甚至创建这样的参考库?因为这也是PluralSite具有惊人的客户终身价值的原因之一。由于人们将Pluralsite作为参考软件库使用,因此会在Pluralsite上滞留很长的时间。我们知道,一旦人们遇到问题,他们只是用Google搜索一下,然后进入Pluralsite查看“是否有相关的课程,是否有关于这方面的一些经验教训?”。他们总会有所发现,因为Pluralsite的内容比我们丰富太多。所以我打算做Vue Mastery,目标是使其成为Vue开发者的终极学习资源。我希望它会成为Vue的参考库。

InfoQ: 您认为人们采纳并使用Vue的主要原因有哪些?

Pollack:其中存在多个原因。在我看来,首先,Vue做得非常出色,实现了React、Angular中的所有最佳实践,并且对于使用者而言非常易于采用它。这不仅是因为Vue具有所有同样的模式,而且因为它关注了使用者在首次开始学习它时的感受。Vue具有很好的文档,主要得益于负责文档项目的Chris Fritz,他非常关心文档的可访问性。这使得文档很棒,特别是在你开始上手时。其次,这还得益于Vue可以渐进增量采纳。这意味着,你可以在一开始将Vue作为项目的一小部分,也可以从一开始就大范围地使用vue-cli并按Vue.js方式实现一切。这非常棒,但是对于大型企业而言,如果你想让Vue成为主流,那么你必须使它变得非常易于渐进增量采纳。这样在使用Vue整个框架并采用其方式实现应用时,可用Vue分别实现应用中的各个小部分。。

我前些日子听到有人说出对React和Angular的一些共鸣。因为这两种技术有很多使用它们做全职开发工作的人,这也许就是为什么随着这两种技术的发展,感觉作为初学者越来越难以上手的原因之一。因为这两种技术几乎已被过度设计,并且也未足够重视新手入门的问题。对于类似的情况,作为初学者是否有人可以在应用中5%、10%甚至60%的使用此类技术?我认为这就是Vue在过去几年被如此广泛采纳的原因。

InfoQ: 您在演讲中侧重于将响应式能力作为Vue的核心特性之一。您能深入介绍一下吗?

Pollack:在许多此类框架中都能发现响应式能力。响应式是指在某处JavaScript代码中包含了数据,一旦数据发生变化,框架就知道网页中所有需要做更新或更改的不同位置。如果你能将数据抽象出来,并且你只有一个JavaScript数组之类的结构,一旦数据发生改变,你就能知道它所影响的网页部分,这是非常棒的。能给出一个为你实现上述功能的框架是很关键的,这样你就不必操心如何更新DOM、如何在回调钩子中运行jQuery。你只需给出一个模板,让框架去发现何时需要做更新,以及如何更新。实际上这就是虚拟DOM理念的起源,所有此类框架都具有这种虚拟DOM,这样可以使模板中的差异可以随着数据的更新,以最有效和最高效的方式得以更新。我在演讲中探索了其背后的机制,并展示了如何创建一个响应式引擎,然后展示了它们在Vue源代码中的位置。如此揭示了Vue对每个人响应式能力的魔法,因为它真正实现了这种魔法。

InfoQ: 您在演讲中提及很少有人理解核心框架的所有源代码。在您看来,人们最纠结的是哪些特性?

Pollack:我们刚刚在VueMastery.com上发布了我们的免费新手素材,所以我们还没有这方面的数据。那么人们在哪些特性上最纠结……我认为,如果你是一位初学者,鉴于Vue非常易于初学者采用,你可以小范围地使用它,也可以大范围地使用它。好吧,当我还是一位初学者时,我发现自己一开始的确想知道的是,专业人员如何真正地使用这个东西?因此,现在需要做出一点点的发现,找出一点点问题,为的是弄清楚黄金道路是什么。如果我想投身于Vue开发,并从头开始使用所有Vue最佳实践,就应该知道有哪些最佳实践。

我认真考虑过,在过去一年里Vue一直在不断地发展,最佳实践已经初具雏形,我认为这可能目前令人不太明朗的原因之一。Nuxt.js等项目在过去几个月才给出1.0版。Nuxt正在做这样的事情,试图告诉你这就是最佳实践,其中使用了所有的关键库,去创建企业级、生产环境中的Vue应用。在此处存放所有的文件,此处存放所有的文件夹,我们只需要告诉你如何以最佳实践的方式做到这一点。现在问题已经有所改观,企业Vue技术栈究竟应该如何正逐渐变得更清晰。

InfoQ: 在您看来,Vue中最被低估的特性有哪些?

Pollack: 首先我要说的是动画和转换特性。我认为动画和转换普遍存在于网络应用中,但是很少有企业充分利用它们去创建漂亮的用户界面。我喜欢Vue可轻松创作动画和转换的特性,部分可归因于Vue的创建者Evan You的背景就是一位设计师!所以我认为,这是You想要Vue从中获得的部分影响力,使得那些可能拥有较少代码体验的设计人员仍然可以轻松访问并使用该框架,这非常棒。那是其中之一。

对于未充分利用的特性……我会说是服务器端渲染。如果Vue在呈现回服务器之前渲染模板得到了充分的利用,那么可能会有大量应用使用Vue。我不清楚其中的各个阶段,我需要弄清楚……如果你真的想要扩展你的应用,有一种方法不仅是渲染模板,而是渲染你的网页,使得在实际需要通过浏览器加载文件时,只有应用中最动态的部分才会被加载到浏览器中。在过去数月中,不同级别的渲染和可扩展性确实得到了强化。你可以使用nuxt,甚至可以自己做一些服务器端渲染(我认为这是在vue-loader中)。这里有一些技巧可以让你充分利用这些特性,并且让前端真正具有可扩展性,并且非常快速。

InfoQ: 您在编程教学上有着丰富的经验。您对首次接触Vue的开发者有哪些建议?

Pollack:如果可能,直接访问VueMastery.com!在我看来,针对初学者的内容应该永远免费,所以我们在VueMastery.com上提供的初学者内容将会永远免费。我们花了很多的时间和精力去创造这些内容。你甚至不需要创建一个帐户,就可以观看我们所有的视频并开始学习。我认为这是一个非常棒的资源,当然其中还有Vue文档以及入门指南。这个网站棒极了。在开始使用一种技术时,你不会只使用一种资源。因此我无法给你一本书,并说“这里有你所需要知道的一切”。你要从多种资源中学习,并且现在已经有很多很棒的免费资源,包括Vue文档、Vue Mastery,以及免费的Vue课程laracasts,它也非常棒。

在Vue Mastery上,还免费提供Vue要点速查手册。就我的经验而言,当我开始使用某种技术时,最好能在我面前列出所有的语法。由此,我们花了几周的时间创建了一个双面速查手册,将所有的基本语法以触手可及的方式提供给学习者。这样在你开始构建软件时,不必总是查看文档。你可以在桌面上、第二个屏幕上查找你需要的语法,或是打印出来供查看。

查看英文原文: Q&A with Gregg Pollack on Vue.js at VueConf.US

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注