当前位置: 首页 > 科技观察

是什么让我爱上了Vue.js

时间:2023-03-17 15:01:10 科技观察

前言Vue.js是一个用于创建用户界面的开源JavaScript框架。使用其他JavaScript库轻松集成到项目中。它可以充当有助于开发高级单页应用程序的Web框架。2013年,从事其中一个项目的谷歌员工EvanYou得出结论,没有现成的解决方案可以快速为Web应用程序复杂的用户界面制作原型。当时React还处于早期发展阶段,主要工具是像AngularJS或面向MVC的Backbone.js这样复杂的框架,不是很简单,而是专注于开发大型应用。为了克服这个差距,您开始开发Vue.js,它不仅适用于原型设计,还适用于全面开发,同时保持简单性。理论上,Vue.js是jQuery的替代品。但实际上,Vue.JS与React.JS(视图领域的明显领导者)竞争非常成功。从解决类似问题的现代流行技术中,您还可以选择Angular和Ember。它们各有优缺点。然而,所有这些框架都可以归结为一个共同点——开发的相对复杂性。VUE.JSVS其他Vue.JS着眼于所列技术的最佳实践。Vue团队从React.JS中借鉴了虚拟DOM的思想。这种方法消除了与接口节点的直接交互。最初的工作是通过它的轻量级对应物——VirtualDOM完成的。只有在将此更改应用于实际接口节点之后。同时,将对真实的DOM树和它的虚拟副本进行比较。这样,差异就会显现出来,只有改变的才会被重绘。双向数据绑定是从AngularVue.JS借来的。这允许您设计接口:首先,声明式;其次,在模板引擎中使用Vue。例如Haml或Pug。但确实这种方法已经被实践过,例如在Knockout.JS框架中。Vue.JS核心与React一样,仅包含使用界面所需的功能。因此,它很紧凑,可以很容易地与包括jQuery在内的其他技术集成,甚至可以用来开发简单的界面。此外,Vue有许多插件实现了开发Web应用程序的现代方法。怎么了?例如,几乎所有的React应用程序都是采用状态控制技术Redux设计的,它是一个独立的库,实现了flux架构。Redux库实践的方法已被证明非常方便和成功。因此,Vue.JS开发了自己的应用状态控制技术——Vuex。Vuex完全借鉴了Redux的思想,但该库与Vue的集成程度高于React和Redux。这转化为速度和便利。VUE.JS的主要区别1.反应性反应性是指应用程序内部的数据与显示中的数据直接相关,在任何部分进行更改都会立即影响屏幕的重绘。React中的反应性是如何实现的?简而言之,我们在应用程序中使用的所有数据都存储在state和props中,如果需要,我们更改数据,然后我们通过setState进行更改,然后React确定应用程序的状态取决于哪些部分被修改数据并重新绘制。在Vue.js中,使用了一种类似的方法,但有一个根本区别——应用程序输入数据的每个字段都使用Object.defineProperty并分成setter/getter对。在它们的帮助下,Vue可以跟踪正在读取或修改的数据,并可以具体确定影响显示的内容。2.ComputedpropertiesVue中有几种组件数据类型:data——基础数据;props——从父组件传过来的数据;computed-可以根据前两个计算的数据。概念分离是一个简单但方便的想法。后者比React的方法有很多优势:我们不再为组件生成getFullName形式的辅助方法。它们是响应式的,在第一次计算时,借助扩展的getter(第一段中描述的原理),它们收集依赖关系并确定何时需要更改和重新计算哪些数据;它们是惰性的,即只在访问它们时才计数,而不是依赖数据的每次更改;基于输入数据的缓存。在Redux中处理大量样本时,可以使用Reselect实现类似的行为。3.内置翻转动画在框架中方便地描述动画的想法远非新鲜(ng-animate,ReactCSSTransitionGroup)。开箱即用的WowFLIP动画。简而言之,就是先知道移动元素的总位置,然后借助平移移动元素的动画。在Vue中,只需几行代码即可获得该动画4.组件和VUE加载器Vue建议将所有组件代码(js、样式、模态)存储在一个文件中,这是一种非常不寻常的方法。我们不会判断它有多舒服,尤其是当你的组件是一个原子一个原子地离开时。但有点奇怪的是,这些组件是通过vue-loaderforwebpack加载的,它向你隐藏了构建的复杂性,允许开箱即用地使用你喜欢的技术ES6、coffeeScript、Sass、postCSS、CSS模块,玉(哈巴狗)等等。而且不像React,我们不需要和一门新的JSX语言打交道,我们会继续使用我们熟悉的语言或者使用完全不同的HTML生成器,比如PUG。没有设置,很酷吧?5.Slotsslots的思想来自于WebComponents,它很简单——如果你需要在另一个组件内部传递多个组件,你可以指定显示它们的位置。这种方法允许您制作复杂的组件、包装器,它们很容易从内部发生的事情中抽象出来。因此,例如,您可以制作一个具有多个插槽的布局组件:让我们看一个真实的例子?最近,我参与了CloudChecker服务的开发,该服务分析云服务并优化其使用。这是Vue被积极使用的地方。在开发项目设计时,GoogleMaterialDesign被用作基础,它简单、严谨并且非常适合这项任务,但仍然非常愉快和用户友好。因此,在编写前端部分的准备阶段,决定采用现成的素材组件框架Vuetify。在编写模板时非常直观且相对简单,它还存储了一个非常庞大且功能强大的现成组件库,这些组件是开箱即用地创建完整的现成应用程序所必需的。VUE.JS的优点和缺点VUE.JSPro在检查了该技术的关键特性并在实践中对其进行测试后,您可以列出Vue框架的主要优点:Vue.js具有许多与Angular相似的特性,这有助于优化使用不同组件的HTML块的处理。Vue.js拥有非常丰富的文档,可以捕捉开发人员的学习曲线,并节省大量仅使用HTML和JavaScript基础知识开发应用程序的时间。由于它在设计和架构方面类似于Angular和React,因此它提供了与Vue.js中其他框架的快速切换器。Vue.js可用于创建单页应用程序和更复杂的Web界面。最主要的是,小的交互部分可以很容易地集成到现有的基础设施中,而不会对整个系统产生负面影响。没有堆栈要求,因此Vue.JS可用于任何项目。Vue.js的重量约为20KB,但保留了其速度和灵活性,这使其比其他平台具有更高的性能。由于使用了所有模板并提供了文档,因此出现的大多数问题都会很快得到解决。包括与React相比,因为框架的全部功能在大多数没有复杂接口的应用程序中有点多余。基于其简单的结构,Vue.js可以帮助开发相当大的可重用模板,而无需为其分配额外的时间。几乎任何至少熟悉前端的开发人员都可以找到并连接到该项目。低门槛允许前端和后端开发人员使用该框架。Vue允许您创建满足所有现代标准的功能性应用程序,需要最少的新资源连接,而且实际上更便宜。VUE.JS缺点与React.JS相比也有一些缺点:在应用程序状态下工作是“在幕后”。它增加了新开发人员的进入门槛,但对于我们的团队来说,这并不是真正的劣势。与React或Angular相比,Vue.js的市场份额仍然很小,这意味着该框架下的知识共享仍处于起步阶段。但应该指出的是,趋势正在发生巨大变化,Vue的发展势头比其他框架快得多。由于Vue.js有一定的中文基础,所以很多元素和说明还是提供了中文。这导致在某些开发阶段出现部分并发症,但是,越来越多的材料被翻译成英文。就个人经验而言,我们团队在Vue的帮助下处理任何复杂的任务,并且在使用该框架时没有遇到任何误解。尽管Vue.js的工作存在这些缺陷,但我们的开发团队在处理该技术方面拥有丰富的经验,并且随时准备应对任何复杂甚至繁重的任务。如今,Vue.js被小米、阿里巴巴、WizzAir、EuroNews、Grammarly、Gitlab和Laracasts、Adobe、Behance、Codeship和路透社等公司使用。Angular和React有自己的做事方式,Vue相当简单。许多公司选择Vue是因为它的易用性。使用Angular或React进行开发需要良好的JavaScript知识,并且您需要对第三方库做出很多决定。现在,如果我们在这种情况下考虑我们的框架,Angular使用双向数据绑定,React用于单一数据流,而Vue支持两者。每个框架都有其优点和缺点,这意味着在产品开发过程中,应该针对每种情况做出正确的选择。