Vue.js为什么不支持templateUrl模式

JavaScript020

Vue.js为什么不支持templateUrl模式,第1张

Angular的世界里,templateURL 或者 ng-include 允许使用者在运行时动态的加载远程模板文件,这个看起来很方便,作为一个自带功能,但是让我们来重新审视下这个功能。

首先,它允许我们能够编写一个分离的html文件作为模板,这样子我们就能在编辑的时候看到正确的语法高亮,这也是很多开发者喜欢的原因(注:我觉得这是因为现在的人越来越懒,越来越依赖IDE的原因)。但是分离你的js和html代码真的是个好主意么看在Vue.js的组件中,js和html天然紧耦合,事实上,这些代码在一个文件更简单易懂。在2个文件中来回切换上下文逻辑实际上让开发者更不爽。在vue的概念里,组件才是vue.js的基本构建单位,并不是模板文件。每一个vue.js的模板都伴随着他的好基友js,分离他们太过于残忍了。

其次,因为templateURL是在运行时通过ajax的方式加载模板,不需要构建步骤为了你分离的文件。开发的时候,这很爽,但是上线部署的时候,你就麻烦了。在HTTP2.0没有大面积支持前,HTTP的请求数仍然是页面加载的最关键因素。想象一下,在你的网站中,每个组件都是用templateURL,那么页面出来前,你可能需要加载几十个HTTP请求。可能你并不知道,大多数的浏览器是限制同一域名的并发请求数量的。当你超过这个限额的时候,你页面的初始渲染时间就得等待每次请求的返回。当然,有工具可以帮助你提前注册你所有的模板,但是这就多了一个构建步骤,事实上,这就是大型网站的必然趋势。

那么,在没有templateURL的情况下,我们怎么处理开发环境问题呢看

在js里面拼接字符串是很烂的做法,使用 <script type="x/template">这种伪模板也不咋样。那么,现在是时候提升技能,使用像Webpack或者Browserify这种流行的模块构建器了。如果以前没有使用过,可能有点望而却步,但是相信我,这会有一个质的飞跃。对于大型网站和系统来说,适当的模块化很必要。更重要的是,你可以编写Vue组件在一个文件中,再加上语法高亮,自定义的预处理器,热加载,ES6,内置css,自动前置。可以让开发者提高10倍效率。

最后,Vue还能懒加载你的组件,加上使用wabpack非常容易,尽管这是为了解决一个问---构建页面文件过于庞大,初始化比较慢,所以你最好还是分割开来比较好。

抛弃template,拥抱组件世界吧!!

以上是原文的翻译,并非完全直译,有很多自己的语言,大概意思相同,原谅我的文采不行。

个人觉得,Vue的组件思想跟React相似,把很多东西放在了js(这里是.vue文件)中,这种做法是把很多紧耦合的东西集中在一起管理,把原来分割开的css,html,js合成在一起,这个很像很多年的做法,所以很同意玉伯说的,看起来前端是在原地打转了一圈,开发模式回到了从前的样子,但是已经螺旋上升了哦,一切都在升级。

通过最近的使用来看,这种component的方式很方便,天然帮你做了解耦的分离,当然你需要转化自己的思维模式,不能在用jquery的操作DOM方式,同时和Angular也有很多区别,Vue并非一个框架,而是更像一个类库,这样很灵活,当然也会有人使用非常hack的方式来编写代码,可能会很蛋疼,这就需要自己注意了,对于团队而言,可以很好的积累各种组件,同时功能切分,合作起来更加容易,就看团队对Vue的理解程度了。

avaScript最初是为Web应用程序而创建的。随着前端技术的发展,比起纯JavaScript 脚本,大多数开发人员更喜欢使用基于JavaScript的框架来开发Web应用,如Vue、React等。这些框架大大简化了你的代码,也使你能够完成更多的全栈工作。

使用什么类型的框架决定了应用程序的敏捷程度。因此,您必须慎重选择。在充满多样性的前端生态中,有两个框架十分引人瞩目——Ember.js和Vue.js。

本文,我们将就这两个框架进行对比,帮助你判断哪个框架才更适合你。

开发者为什么要为选择框架而犯愁?

在开始对比这两个框架之前,我们应该先了解:选择一个框架的决定因素都有哪些:

代码必须简单易懂

应以更少的代码量产出更多的功能

应提供一个布局合理的工作框架

是否支持内置路由或外部插件的路由

应该能够在页面加载时传输更多数据,从而使页面成为单页应用(PS:单页应用程序的使用体验更好)

在单页架构中,如果用户需要共享应用子页面链接,那么框架应该具备基于URL路由不同功能的能力

更严格的模板选项有助于实现双向绑定

不应与任何第三方库产生冲突

应该很容易测试框架内的代码

应为Ajax调用提供HTTP客户端服务

文档必不可少,并且应该是完整且最新的

应该与浏览器的最新版本兼容

只有保证所选择的框架符合上述基本条件,才能够最大程度的确保Web应用程序的构建顺利。

下面我们就来详细分析Ember.js和Vue.js框架之间的异同。

Ember.js

请点击输入图片描述

Ember.js是一个基于MVVM模型的开源框架,该框架主要用于创建复杂的多页面应用程序。它最大的特点是:持续推出最新的特性,并不会丢弃任何旧功能。

与大多数前端开发框架不同,使用Ember.js,您必须遵循一套严格的JS体系结构,也就是说,Ember.js并不具备高度的灵活性。不过,正是得益于这套JS体系结构,Ember.js明显更加完善、稳定,您可以使用其任意版本推出的工具与最新版本集成,却不必过分担忧兼容性问题。

因为Promise无处不在,所以你可以用简单的方式编写代码和模块,通过调用 Ember.js提供的API,以实现高度复杂的功能。

在性能处理方面,Ember.js创建了相似的绑定机制和DOM更新,允许让浏览器一次性处理它们,以提高工作性能(这样做的好处是:避免为重复工作增加算力,浪费大量时间)。

作为一个流行的前端开发框架,学习指南必不可少。Ember.js明确了一般应用程序的组织和结构,确保你不会犯任何错误。

Ember.js的模板基于Handlebar 语法,借助它可以使你轻松阅读和理解模板,同样也能使页面加载速度变得更快。除此之外,你不必每次在页面上添加或删除数据时都更新模板,因为这一切,语言本身已自动为你完成。

最后,Ember.js拥有一个活跃的社区,其定期更新框架并确保向后兼容性。

让我们花几分钟总结一下Ember.js的特点:

Ember.js是适用于复杂结构、多页应用程序的MVVM模型的开源框架

Ember.js持续提供最新功能,且不会丢弃任何旧功能

Ember.js遵循一套非常严格的结构框架,不能提供太高的灵活性

借助Ember.js完善的控制系统可帮助你与新版本完美集成

Ember.js对避免使用过时的API版本有着严格的指导

Ember的API可帮助您以简单的方式使用复杂的功能

Ember.js提供高效的运算机制,以保证运行效率

Promise确保你使用Ember.js的任何API,以达到编写模块化脚本和简洁代码的目的

Ember.js是一个完全加载的前端框架

Ember.js框架稳定,因为所有组件都具有相同的功能和属性

Ember.js具有明确定义的限制,可防止您使应用程序复杂化

Handlebar作为Ember.js的模板语言,可使你可以轻松阅读和理解模板,且有助于更快地加载模板

Ember.js有一个活跃的社区,可以定期更新框架并保证其向后兼容性

Vue.js

请点击输入图片描述

开发人员一直在试图寻找新的框架来构建他们的应用程序,而他们的核心诉求只有一个:速度快、成本低。

基于此,用Vue就够了。

这个框架很容易被开发人员理解并且能够以极低的成本使用。当然,选择它的理由还有很多:简单的编码方式、健全的帮助文档和活跃的生态系统。

在Web应用程序开发中,Vue.js在软件语言方面结合了很多优点。它的体系结构更易使用,并且,使用Vue.js 开发的应用程序很容易与现代化的应用程序集成。

Vue.js使用了服务器端渲染流的方法,这样做有两个好处:1. 使服务器具有较高的响应速度;2. 非常适合SEO(自然搜索)。通过服务器端渲染,视图直接在服务器上呈现,这十分便于搜索引擎直接抓取到这些网页内容。

Vue.JS是一个非常轻量级的框架。正因如此,它也比其他框架快得多。

如果你愿意,甚至还可以进一步减少它的体积——使用Vue.js可以将模板和编译器分离为虚拟DOM,只需部署12 KB的压缩文件,就可以在您的机器中编译模板。

Vue.js的另一个重要特点是:它可以轻松地与使用JavaScript脚本创建的Web应用程序集成,使用此框架可以轻松地对已有应用程序进行更改。

提到集成,就不得不说Vue.js与其他前端库的集成情况。Vue.js可以轻松的集成到其他前端库中,也就是说,您可以在Vue.js中插入另一个库,以弥补此框架的不足,而这项功能也使得Vue.js成为了一个更为通用的工具。

认识Vue.js+Vue.js的优缺点+和与其他前端框架的区别

首先,我们先了解什么是MVX框架模式?MVX框架模式:MVC+MVP+MVVM1.MVC:Model(模型)+View(检视)+controller(控制器),主要是基于分层的目的,让彼此的职责分开。View通过Controller来和Model联络,Controller是View和Model的协调者,View和Model不直接联络,基本联络都是单向的。使用者User通过控制器Controller来操作模板Model从而达到检视View的变化。2.MVP:是从MVC模式演变而来的,都是通过Controller/Presenter负责逻辑的处理+Model提供资料+View负责显示。在MVP中,Presenter完全把View和Model进行了分离,主要的程式逻辑在Presenter里实现。并且,Presenter和View是没有直接关联的,是通过定义好的介面进行互动,从而使得在变更View的时候可以保持Presenter不变。MVP模式的框架:Riot,js。3.MVVM:MVVM是把MVC里的Controller和MVP里的Presenter改成了ViewModel。Model+View+ViewModel。View的变化会自动更新到ViewModel,ViewModel的变化也会自动同步到View上显示。这种自动同步是因为ViewModel中的属性实现了Observer,当属性变更时都能触发对应的操作。MVVM模式的框架有:AngularJS+Vue.js和Knockout+Ember.js后两种知名度较低以及是早起的框架模式。Vue.js是什么?看到了上面的框架模式介绍,我们可以知道它是属于MVVM模式的框架。那它有哪些特性呢?其实Vue.js不是一个框架,因为它只聚焦检视层,是一个构建资料驱动的Web介面的库。Vue.js通过简单的API(应用程式程式设计介面)提供高效的资料系结和灵活的元件系统。Vue.js的特性如下:1.轻量级的框架2.双向资料系结3.指令4.外挂化Vue.js与其他框架的区别?1.与AngularJS的区别相同点:都支援指令:内建指令和自定义指令。都支援过滤器:内建过滤器和自定义过滤器。都支援双向资料系结。都不支援低端浏览器。不同点:1.AngularJS的学习成本高,比如增加了DependencyInjection特性,而Vue.js本身提供的API都比较简单、直观。2.在效能上,AngularJS依赖对资料做脏检查,所以Watcher越多越慢。Vue.js使用基于依赖追踪的观察并且使用非同步伫列更新。所有的资料都是独立触发的。对于庞大的应用来说,这个优化差异还是比较明显的。2.与React的区别相同点:React采用特殊的JSX语法,Vue.js在元件开发中也推崇编写.vue特殊档案格式,对档案内容都有一些约定,两者都需要编译后使用。中心思想相同:一切都是元件,元件例项之间可以巢状。都提供合理的钩子函式,可以让开发者定制化地去处理需求。都不内建列数AJAX,Route等功能到核心包,而是以外挂的方式载入。在元件开发中都支援mixins的特性。不同点:React依赖VirtualDOM,而Vue.js使用的是DOM模板。React采用的VirtualDOM会对渲染出来的结果做脏检查。Vue.js在模板中提供了指令,过滤器等,可以非常方便,快捷地操作DOM。如何使用Vue.js?1.安装(1)script如果专案直接通过script载入CDN档案,程式码示例如下:(2)npm如果专案给予npm管理依赖,则可以使用npm来安装Vue,执行如下命令:$npmivue--save-dev(3)bower如果专案基于bower管理依赖,则可以使用bower来安装Vue,执行如下命令:$bowerivue--save-dev

Vue.js与其他框架的区别:

1.与AngularJS的区别

相同点:

都支援指令:内建指令和自定义指令。

都支援过滤器:内建过滤器和自定义过滤器。

都支援双向资料系结。

都不支援低端浏览器。

不同点:

1.AngularJS的学习成本高,比如增加了Dependency Injection特性,而Vue.js本身提供的API都比较简单、直观。

2.在效能上,AngularJS依赖对资料做脏检查,所以Watcher越多越慢。

Vue.js使用基于依赖追踪的观察并且使用非同步伫列更新。所有的资料都是独立触发的。

对于庞大的应用来说,这个优化差异还是比较明显的。

2.与React的区别

相同点:

React采用特殊的JSX语法,Vue.js在元件开发中也推崇编写.vue特殊档案格式,对档案内容都有一些约定,两者都需要编译后使用。

中心思想相同:一切都是元件,元件例项之间可以巢状。

都提供合理的钩子函式,可以让开发者定制化地去处理需求。

都不内建列数AJAX,Route等功能到核心包,而是以外挂的方式载入。

在元件开发中都支援mixins的特性。

不同点:

React依赖Virtual DOM,而Vue.js使用的是DOM模板。React采用的Virtual DOM会对渲染出来的结果做脏检查。

Vue.js在模板中提供了指令,过滤器等,可以非常方便,快捷地操作DOM。

我知道vue2.0和angularJS的区别,这两个框架非常的像,但是在vue2.0后可以将js+css写成一个元件,你想在什么页面用引入这个元件就可以用了。这很变态。

比如你在一个专案中自己写了个带搜寻框的input ,你把他写成了一个元件,xxx.vue

直接把xxx.vue移到另一个专案,只要在另一个专案中需要 带搜寻框的input ,直接引用就可以了。

现在大多数框架都是以一个元件的形式搭建一个专案

vue是什么 vue特点 vue和其他前端框架区别

vue是什么

Vue.js (读音 /vju?/,类似于 view) 是一套基于javascript的用于构建使用者介面的渐进式框架。与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。Vue 的核心库只关注检视层,它不仅易于上手,还便于与第三方库或既有专案整合。另一方面,当与单档案元件和 Vue 生态系统支援的库结合使用时,Vue 也完全能够为复杂的单页应用程式提供驱动。

vue特点

简洁、轻量、元件化、快速、资料驱动、模组友好

vue和其他前端框架区别

1.与AngularJS的区别

相同点:

都支援指令:内建指令和自定义指令。

都支援过滤器:内建过滤器和自定义过滤器。

都支援双向资料系结。

都不支援低端浏览器。

不同点:

1>AngularJS的学习成本高,比如增加了Dependency Injection(依赖注入)特性,而Vue.js本身提供的API都比较简单、直观。

2>在效能上,AngularJS依赖对资料做脏检查,所以Watcher越多越慢。

Vue.js使用基于依赖追踪的观察并且使用非同步伫列更新。所有的资料都是独立触发的。

对于庞大的应用来说,这个优化差异还是比较明显的。

手机渲染速度:angular1 300ms * vue 200ms * react 100ms

2.与React的区别

相同点:

React采用特殊的JSX语法,Vue.js在元件开发中也推崇编写.vue特殊档案格式,对档案内容都有一些约定,两者都需要编译后使用。

中心思想相同:一切都是元件,元件例项之间可以巢状。

都提供合理的钩子函式,可以让开发者定制化地去处理需求。

都不内建列数AJAX,Route等功能到核心包,而是以外挂的方式载入。

在元件开发中都支援mixins的特性。

不同点:

React依赖Virtual DOM,而Vue.js使用的是DOM模板。React采用的Virtual DOM会对渲染出来的结果做脏检查。

Vue.js在模板中提供了指令,过滤器等,可以非常方便,快捷地操作DOM。

vue的应用场景

简单地说,就是需要对 DOM 进行很多自定义操作的专案小专案理论上 Vue 配合类似Flux的架构也可以胜任超大规模多人协作的复杂专案。

如何用vue.js和ionic搭建前端框架

前端可以用flightplan.js 部署。 var config = require("./webpack.config.js")var webpack = require("webpack") var webpackDevServer=require("webpack-dev-server") confi

vue.js高仿饿了么外卖app 2016最火前端框架

React

React 和 Vue 有许多相似之处,它们都有:

使用 Virtual DOM

提供了响应式(Reactive)和元件化(Composable)的检视元件。

保持注意力集中在核心库,伴随于此,有配套的路由和负责处理全域性状态管理的库。

相似的作用域,我们会用更多的时间来讲这一块的比较。不仅我们要保持技术的准确性,同时兼顾平衡。我们指出React比Vue更好的地方,例如,他们的生态系统和丰富的自定义渲染器。

React社群在这里非常积极地帮助我们实现这一平衡,特别感谢来自 React 团队的 Dan Abramov 。他非常慷慨的花费时间来贡献专业知识,来帮我们完善这个档案,直到我们都满意。

这么说,就是希望你能对这两个库的比较的公平性感到放心。

效能简介

到目前为止,在现实的测试中,Vue 是优于 React 的(通常至少快20%-50%,尽管在某些情况下还要更快)。我们可以提供一个到这个参照专案的连结,但是坦率的说,所有的参照在某些方面是有缺陷的,很少有像你所写的一个真实应用。那么,让我们详细了解下吧。

渲染效能

在渲染使用者介面的时候,DOM的操作是最昂贵,不幸的是没有库可以让这些原始操作变得更快。

我们能做的最好的就是:

尽量减少DOM操作。Vue 和 React 都使用虚拟DOM来实现,并且两者工作一样好。

尽量减少除DOM操作以外的其他操作。这是 Vue 和 React的一个不同的地方。

假如说,在React中,渲染一个元素的额外开销是1,而平均渲染一个元件的开销是2。在Vue中,一个元素的开销更像0/vue/dist/vue.js"></script>然后就可编写Vue程式码并应用到生产中,而不用担心效能问题。

由于起步阶段不需学JSX,ES2015 或构建系统,所以建立应用花的时间会更少。

本地渲染

ReactNative能使你用相同的元件模型编写有本地渲染能力的APP(IOS或Android)。能同时跨多平台开发,对开发者是非常棒的。相应地,Vue和Weex会进行官方合作,Weex是阿里的跨平台使用者介面开发框架,Weex 的 JavaScript 框架执行时用的就是Vue。这以为著不仅在浏览器,在 IOS 和 Android 上面也可以用 Vue 来进行开发。

在现在,Weex 还在积极发展,成熟度也不能和 ReactNative 相抗衡。但是,Weex的发展是由世界上最大的电子商务企业的需求在驱动,Vue 团队也会和 Weex 团队积极合作确保为开发者带来良好的开发体验。

MobX

Mobx 在 React 社群很流行,实际上在Vue也采用了几乎相同的反应系统。在有限程度上,React + Mobx 也可以被认为是更繁琐的 Vue,所以如果你习惯组合使用它们,那么选择 Vue 会更合理。

Angular 1

Due的一些语法和Angular的很相似(例如 v-if vs ng-if)。因为Angular是Vue早期开发的灵感来源。然而,Augular中存在许多问题,在Vue中已经得到解决。

复杂性

在 API 与设计两方面上 Vue.js 都比 Angular 1 简单得多,因此你可以快速地掌握它的全部特性并投入开发。

灵活性和模组化

Vue.js 是一个更加灵活开放的解决方案。它允许你以希望的方式组织应用程式,而不是在任何时候都必须遵循 Angular 1 制定的规则,这使让Vue能适用于各种专案。我们知道把决定权交给你,是非常必要的,就是是为什么提供Webpack template,让你用几分钟,去选择是否用高阶特性,比如热模组载入、linting 、

Css extraction 等等。

资料系结

Angular 1 使用双向系结,Vue在不同元件间强制适用单向资料流。这使应用中的资料流清晰易懂。

指令与元件

在 Vue 中指令和元件分得更清晰。指令只封装 DOM 操作,而元件代表一个自给自足的独立单元 —— 有自己的检视和资料逻辑。在 Angular 中两者有不少相混的地方。

效能

Vue.js 有更好的效能,并且非常非常容易优化,因为它不使用脏检查。

在Angular 1中,当 watcher 越来越多时会变得越来越慢,因为作用域内的每一次变化,所有 watcher 都要重新计算。并且,如果一些 watcher 触发另一个更新,脏检查回圈(digest cycle)可能要执行多次。 Angular 使用者常常要使用深奥的技术,以解决脏检查回圈的问题。有时没有简单的办法来优化有大量 watcher 的作用域。

Vue.js 则根本没有这个问题,因为它使用基于依赖追踪的观察系统并且非同步列队更新,所有的资料变化都是独立地触发,除非它们之间有明确的依赖关系。

有意思的是,Angular 2 和 Vue 用相似的设计解决了一些 Angular 1 中存在的问题。

Angular 2

Augluar 2完全是一个全新的框架。例如,它具有优秀的元件系统,并且许多实现已经完全重写,API也完全改变了。

TypeScript

Angular 1面向的较小的应用程式,Angular 2已转移焦点,面向的是大型企业应用。TypeScript被引用,这对那些喜欢用Java或者C#等型别安全的语言的人是非常有用的。

Vue也适合企业应用,也可以使用TypeScript来支援官方型别和使用者贡献的型别,尽管这是可选的。

尺寸和效能

在效能方面,这两个框架都是非常快。但是如果你检视第三方参照,就可以得出 Vue 2 比 Angular2 要快的。

在尺寸方面,虽然 Angular 2 使用 tree-shaking 技术和编译技术能使程式码尺寸减小。

即便包含编译器和全部功能 Vue2(23kb)比起 Angular 2(50kb)还是小的多。但是要注意,用 Angular 的 App 的尺寸缩减是用 tree-shaking 移除了那些框架中没有用到的功能,当随着引入功能的增多,尺寸会越来越大。

灵活性

Vue 官方提供了构建工具,但没限制你如何构建。有人喜欢用统一的方式构建,也有很多开发者喜欢这种灵活自由的方式。

学习曲线

开始使用Vue,你使用的是熟悉的HTML、符合ES5规则的JavaScript(也就是纯JavaScript)。有了这些基本的技能,你可以快速地掌握它(指南)并投入开发 。

Angular 2 的学习曲线是非常陡峭的。即使不包括TypeScript,它们开始指南中所用的就有ES2015标准的JavaScript,18个NPM依赖包,4个档案和超过3千多字介绍,这一切都是为了完成个Hello World。而Vue's Hello World就非常简单。

Ember

Ember 是一个全能框架。它提供大量的约定,一旦你熟悉了它们,开发会很高效。不过,这也意味着学习曲线较高,而且不灵活。在框架和库(加上一系列松散耦合的工具)之间权衡选择。后者更自由,但是也要求你做更多的架构决定。

也就是说,最好比较 Vue.js 核心和 Ember 的模板与资料模型层:

Vue 在普通 JavaScript 物件上建立响应,提供自动化的计算属性。在 Ember 中需要将所有东西放在 Ember 物件内,并且手工为计算属性宣告依赖。

Vue 的模板语法可以用全功能的 JavaScript 表示式,而 Handlebars 的语法和帮助函式语法相比之下非常受限。

在效能上,Vue 甩开 Ember 几条街,即使是 Ember2.0 的最新Glimmer引擎。Vue自动批量更新,Ember 当效能关键处需要手动管理。

Knockout

Knockout 是MVVM领域内的先驱,并且追踪依赖。它的响应系统和Vue相似。它对浏览器支援以及所有的表现也是让人印象深刻的。它能最低支援到IE6,而Vue最低只能支援到IE9。

随着时间的推移,Knockout的发展已有所放缓,并且略显有点老旧了。比如,它的元件系统缺少完备的生命周期事件方法,尽管这些在现在是非常常见。以及相比Vue呼叫子元件的介面显得有点笨重。

如果你有兴趣研究,会发现它们在介面设计的构思理念上是不同的。这些通过各自建立的 simple Todo List 可以体现出来。或许有点主观,但是很多人认为Vue的API介面更简单结构更优雅。

Polymer

Polymer 是另一个由谷歌赞助的专案,事实上也是Vue的一个灵感来源。Vue的元件可以粗略的类比于Polymer的自定义元素,并且两者具有相似的开发风格。最大的不同之处在于,Polymer是构建于最新版的Web Components标准之上的,并且需要非凡的polyfills来工作(效能下降),浏览器本身不支援这些功能。相比而言,Vue不需要依赖polyfills来工作,最低到IE9。

在 Polymer 1.0版本中,为了弥补效能,团队非常有限的使用资料系结系统。例如,在Ploymer中支援的唯一表达式只有布林值否定和单一的方法的呼叫,它的puted方法的实现也不是很灵活。

Polymer 自定义的元素是用HTML档案来建立的,这回限制你的普通的JavaScript/CSS(和被现代浏览器普遍支援的语言特性)。相比之下,Vue的单档案允许你非常容易的使用ES2015和你想用的Css的预编译处理器。

当部署到生产环境的时候,Polymer建议使用HTML Imports载入所有资源。而这要求伺服器和客户端都支援Http 2.0协议,且浏览器实现了标准。这是否可行就取决于你的目标使用者和部署环境了。如果状况不佳,你必须用Vulcanizer工具来来打包Polymer元素。在这方面,Vue 可以结合非同步元件的特性和Webpack的程式码分割特性来实现懒载入(lazy-loaded)。这同时确保了对旧浏览器的相容且又能更快载入。

对Vue和Web Component标准之间进行深层次的整合,也是完全可行的,比如Custom Elements、Shadow DOM的样式封装。然而现在在我们做出严肃的承诺之前,我们仍在等待标准成熟,进而广泛应用于主流的浏览器中。

Riot

Riot 2.0 提供了一个类似于基于元件的开发模型(在Riot中称之为”Tag”),提供小巧精美的API。Riot 和 Vue 可能共享一些设计理念。即使相比Roit重一点,Vue还是有很多显著优势的:

根据真实条件来渲染,Roit根据是否有分支简单显示或隐藏所有内容。

功能更加强大的路由机制,Roit的路由功能的API是极少的。

更多成熟工具的支援。Vue 提供官方支援Webpack、Browserify和SystemJS,而 Roit 是依靠社群来建立整合系统。

过渡效果系统。Riot现在没有提供。

更好的效能。Roit 尽管广告称用虚拟DOM,实际上用的还是脏检查机制,因此和Angular 1患有相同的效能问题。

以上所述是我给大家介绍的Vue.js 2.0 和 React、Augular等其他前端框架大比拼,希望对大家有所帮助,如果大家有任何疑问请给我留言,我会及时回复大家的。在此也非常感谢大家对指令码之家网站的支援!

react.js vue.js 这些前端框架都必须在node.js上才能跑吗

这些js写的吧,你tomcat怎么解析js,而且tomcat也是呼叫第三方的直译器来解析程式码,你看node.js能不能整合到tomcat,有没有类似的外挂。

并不是,你本地随便建个档案就能跑。