Vue是一个非常令人印象深刻的项目。它是一个非常流行的JavaScript框架,目前正经历着巨大的增长。它简单、精简且非常高效。让我们更多地了解它。
Vue是一个非常受欢迎的JavaScript前端框架,目前正在经历快速增长。
它简单(约24KB),非常高效。它与所有其他JavaScript前端框架和视图库都有不同的感觉。我们来找出其中的原因。
首先,什么是JavaScript前端框架?
如果你不确定什么是JavaScript框架,那么Vue是与其首次相遇的最佳选择。
JavaScript框架帮助我们创建现代化的应用程序。现代化的JavaScript应用程序主要用于Web,但也为许多桌面和移动应用程序提供动力。
在21世纪早期以前,浏览器的能力并不如现在强大。它们远没有现在这么强大,无法在其中构建复杂的应用程序,因为性能上无法承受,而且人们甚至都没有考虑过工具。
一切都在Google推出Google Maps和Gmail后发生了变化,这两个应用程序都是在浏览器内运行的。Ajax使异步网络请求成为可能,随着时间的推移,开发人员开始在Web平台上构建应用程序,工程师则致力于开发平台本身:浏览器、Web标准、浏览器API和JavaScript语言。
像jQuery和Mootools这样的库是最早的重大项目,它们在一段时间内非常流行。它们基本上提供了更好的API来与浏览器交互,并为各种浏览器之间的错误和不一致性提供了解决方法。
像Backbone、Ember、Knockout和AngularJS这样的框架是现代JavaScript框架的第一波浪潮。而第二波浪潮,也就是现在的波浪潮,以React、Angular和Vue为主要代表者。
请注意,jQuery、Ember和其他我提到的项目仍然被广泛使用,积极维护,并且有数以百万计的网站依赖它们。尽管如此,技术和工具在不断发展,作为JavaScript开发人员,现在你可能需要了解React、Angular或Vue,而不是那些更旧的框架。
框架抽象了与浏览器和DOM的交互。我们以声明性的方式定义和交互元素,而不是通过在DOM中引用它们来操作元素,从而在更高的层次上进行交互。
使用框架就像使用C编程语言而不是使用汇编语言编写系统程序。就像使用计算机撰写文档而不是使用打字机。就像拥有一辆自动驾驶汽车而不是自己驾驶汽车。
嗯,不是那么夸张,但你明白我的意思。我们使用由非常聪明的人构建的工具,这些工具使我们的生活更轻松,而不是使用浏览器提供的低级API来操作元素并构建复杂的系统来编写应用程序。
Vue的流行程度
Vue.js有多受欢迎?
Vue在2016年在GitHub上获得了7600个星标,2017年获得了36700个星标,截至2018年6月,在GitHub上获得了100,000多个星标。
它的npm下载量每天都在增长,现在每周约为35万次下载。
鉴于这些数字,我会说Vue非常受欢迎。
从相对的角度来看,它的GitHub星标数量大约与React相似,而React诞生比Vue早几年。
当然,数字并不是一切。我对Vue的印象是开发人员非常喜欢它。
Vue流行的一个关键点是它在Laravel生态系统中的采用,这是一个非常流行的PHP Web应用程序框架,但自那以后它已广泛应用于许多其他开发社区。
开发人员为何喜欢Vue?
首先,Vue被称为渐进式框架。
这意味着它适应开发人员的需求。而其他框架通常要求开发人员或团队完全接受并经常要求您重新编写现有应用程序,因为它们需要一些特定的公约,而Vue只需要一个简单的script
标签即可开始,随着需求的增长,它可以从3行代码扩展到管理整个视图层。
您不需要了解webpack、Babel、npm或任何其他东西就可以开始使用Vue,但当您准备好时,Vue会让您轻松依赖它们。
这是一个很大的优点,尤其在当前JavaScript前端框架和库的生态系统中,这个生态系统往往会让新手感到陌生,也让有经验的开发人员在各种可能性和选择之间感到迷茫。
Vue.js可能是目前最易于接近的前端框架。有人称Vue为新的jQuery,因为它可以通过脚本标签轻松地引入应用程序,并逐渐获得越来越多的应用空间。将它视为一种赞美,因为jQuery在过去几年中主导了Web,仍然在众多网站上发挥着作用。
Vue从最好的想法中汲取经验。它是通过选取像Angular、React和Knockout等框架的最佳思想以及从这些框架中选择的最佳选项,排除了一些不太出色的选项。从某种意义上说,它从一个“最佳组合”开始,并不断发展壮大。
Vue.js在框架领域的定位
谈到Web开发时,有两只大象在房间里,它们分别是React和Angular。Vue相对于这两个大而受欢迎的框架是如何定位自身的呢?
Vue是由Evan You在谷歌为AngularJS(Angular 1.0)应用程序工作时创建的,它诞生于创建更高性能应用程序的需求。Vue选用了一些Angular模板语法,但去除了Angular所需的特定规范的复杂堆栈,并使其非常高效。
新的Angular(Angular 2.0)也解决了许多AngularJS的问题,但解决方式完全不同,并需要对TypeScript进行全面支持,而并非所有开发人员都愿意使用(或想要学习)TypeScript。
那么React呢?Vue从React中借鉴了许多好的想法,最重要的是虚拟DOM。但Vue通过某种形式的自动依赖管理来实现它,该管理工具跟踪哪些组件受到状态更改的影响,只有那些组件在状态属性更改时才会被重新渲染。在React中,当影响组件的一部分的状态发生更改时,该组件将被重新渲染,并且默认情况下,所有子组件也将被重新渲染。为了避免这种情况,您需要使用每个组件的shouldComponentUpdate方法,并确定是否应该重新渲染该组件。这使Vue在易用性和性能方面具有一定的优势。
与React不同的一个重大区别是JSX。尽管在Vue中技术上可以使用JSX,但它并不流行,而是使用了模板系统。任何HTML文件都是一个有效的Vue模板,而JSX与HTML非常不同,对于只需要处理应用程序的HTML部分(如设计师)的团队成员来说,它具有陡峭的学习曲线。Vue模板与Mustache和Handlebars非常相似(尽管在灵活性方面存在差别),因此对于已经使用过Angular和Ember等框架的开发人员来说,它们更加熟悉。
官方状态管理库Vuex遵循Flux架构,并且在概念上与Redux有些相似。再次强调,这是Vue的积极因素之一,它看到了React中的这种良好模式,并将其引入到自己的生态系统中。虽然您可以在Vue中使用Redux,但Vuex专门针对Vue和其内部工作进行了调整。
Vue是灵活的,但核心团队维护了两个对于任何Web应用程序都很重要的程序包,例如路由和状态管理,这使得它的碎片化程度要比React低得多:vue-router
和vuex
是Vue成功的关键。您不需要选择或担心您选择的库是否会在将来得到维护并跟上框架的更新,它们是官方支持的首选库(但您可以选择使用您喜欢的任何库)。
Vue与React和Angular相比的一个不同之处是,Vue是一个独立的项目:它没有像Facebook或Google这样的大公司的背书。相反,它完全由社区支持,通过捐赠和赞助来培育发展。这确保了Vue的路线图不受单一公司议程的驱动。