普遍认为jQuery是适合web初学者的起步工具。许多人甚至在学习jQuery之前,他们已经学习了一些轻量JavaScript知识。为什么?部分是因为jQuery的流行,但主要是源于经验开发人员的一个错误的理念:因为jQuery是简单的,所以对于初学者也很简单适合。jQuery提供了简洁,不简化jQuery确实克服了很多旧浏览器问题。但是,它在封装DOM API和JavaScript的复杂性上并没有做太多。键入 $(‘#id’).click(function(event) {..}); 确实非常简短,但是你还是需要了解一些背景知识才能写这些代码:DOM节点选择,事件处理,回调等等。如果你已经理解了DOM API和JavaScript,jQuery是简单,但初学者不容易编写。Vue.jsVue.js是JavaScript镇上新来的小子。它的许多优势,易于学习可能是第一。简单已经内建于它的设计。我断言,初学者可以用VUE建立平常Web应用,并对他们如何工作了解得更清楚,特别是相比于他们使用jQuery构建一样的东西。让我们用jQuery和vue.js实施一个非常简单的应用程序,看看它是多么轻量。这个案例程序将计算一个按钮被点击的次数,并在屏幕上显示这个数字。

JQuery实现

<div id="output"></div>
<button id="increment">Increment</button> var counter = 0;
$(document).ready(function() {
var $output = $('#output');
$('#increment').click(function() {
counter++;
$output.html(counter);
});
$output.html(counter);
});

它看起来很简单,但考虑到这只是因为你是从经验丰富的开发人员角度看。其实理解代码实际所做的原理是相当棘手的。想想:1. $(document).ready(function() { .. });这这30个字符包含四个棘手的概念:DOM节点的选择、事件处理、文件的加载过程和回调。如果你没有学会所有这些东西,那么你不明白你刚才写的代码。2.要选择一个DOM元素实现操作并完成业务,你需要jQuery构造器$('…')。不幸的是,你不能确定到底你会得到什么节点,你需要使用CSS3-like选择器创建一个合适的过滤器,运行时才能确定。要做到这一点,你需要创建一个DOM复制和模拟运行你的滤波器会对它做些什么。当你编写更新DOM的每个方法时,你必须同样地更新你的DOM复制和考虑如果你的过滤器仍然如预期一样正常工作。3.JQuery只有一个模式:选择jQuery某样事情,然后从API的方法做你选择的事情。这一模式的问题是,我们现在有一个扁平的、有超过100个的方法,从AJAX到数组一维迭代。仅仅使用这么多方法的名称描述就能足以区分他们所做的和他们的返回的是不可能的。一个初学者理解这些串联在一起的方法是真的需要好运。

使用Vue.js实现:

<div id="app">
<div>{{ counter }}</div>
<button v-on:click="increment">Increment</button>
</div> new Vue({
el: '#app',
data: {
counter: 0
},
methods: {
increment() {
this.counter++;
}
}
});

Vue已经解决了之前jQuery很多痛点:1.无需担心DOM回调,这种复杂性已经被封装。Vue的生命周期挂钩将允许更精确的控制,如果它需要。2.在数据属性counter和它渲染输出DOM节点之间有一个明显的之间的链接。无需心理DOM,你可以看到它在网页上有保证,更新计数器不会弄乱你的DOM以意想不到的方式由于摇晃的节点选择。不再需要DOM复制,你可以看到它在网页上,保证更新计数器时不会由于靠不住的节点选择以意想不到的方式弄乱你的DOM。3.我们没有模棱两可的API方法需要查找或记住。不同的功能被很好的组织和分层在Vue构造函数对象中,或能通过指令直接应用到模板中的DOM节点,这些指令提供更多的易于理解的上下文。因此,如果你已经理解JavaScript和DOM API,jQuery是容易。但这不是初学者的情况。因此,jQuery是不简单的,只是略微简单。另一方面,Vue简单内建到它的设计。对DOM API许多困难的部分进行了封装。初学者因此可以很快编写他们真正理解的代码,当他们需要做更复杂的东西,Vue也会提供给他们。所以下次有人问你,什么是他们作为一个网站开发人员初学者应该学会的,也许并不是jQuery。

Vue.js与Jquery的比较 谁与争锋 js风暴的更多相关文章

  1. 三种动态加载js的jquery实例代码另附去除js方法

    !-- 这里为你提供了三种动态加载js的jquery实例代码哦,由于jquery是为用户提供方便的,所以利用jquery动态加载文件只要一句话$.getscript("test.js&quo ...

  2. SpreadJS + GcExcel 一出,谁与争锋!全栈表格技术轻松应对复杂公式计算场景(一)

    设计思路篇 Excel是我们日常办公中最常用的电子表格程序,不仅可满足报表数据的计算需求,还可提供绘图.数据透视分析.BI和Visual Basic for Applications (VBA)宏语言 ...

  3. 思道OA PK 通达OA 同场竞技 谁与争锋

    技术架构 思道OA 通达OA 开发语言 微软ASP.NET 4.0 PHP开源脚本语言 64位平台 64位 32位 数据库 SQL Server大数据库 MySQL开源数据库 官网下载 下载地址 下载 ...

  4. C/S与B/S谁与争锋之我见

    看到网上有些人在讨论C/S架构和B/S架构以及它们的发展趋势,后起之秀B/S是否真将取代C/S而存在?在发表我的观点之前,我们先来一起来回顾下C/S以及B/S. 一C/S 1.C/S概念 C/S是Cl ...

  5. R vs Python,数据分析中谁与争锋?

    R和Python两者谁更适合数据分析领域?在某些特定情况下谁会更有优势?还是一个天生在各方面都比另一个更好? 当我们想要选择一种编程语言进行数据分析时,相信大多数人都会想到R和Python——但是从这 ...

  6. 新一批创业者金矿,iclap谁与争锋

    19世纪,美国西部开发,无数拓荒者涌入,并最终因金矿的发现形成了淘金热.而当无数人埋头寻找黄金之时,有一个人却抬起头看到了潜藏在无数淘金者身上的金矿-这个人就是牛仔裤的发明者,Levi’s的创始人-李 ...

  7. 第1课 Git、谁与争锋

    1-1  安装和使用Git http://git-scm.com/downloads Git的指令模式,才能够清楚地了解Git的工作细节.最后还会介绍Git Server的架设和管理,让读者能够熟练使 ...

  8. 5.js与jQuery入口函数执行时机

    js与jQuery入口函数执行时机区别: JS入口函数是在所有资源加载完成后,才执行.(包括:页面.外部js文件.外部css文件.图片) jQuery入口函数,是在文档加载完成后就执行.文档加载完成指 ...

  9. js和jquery给iframe src赋值的3种方法

    js和jquery给iframe src赋值的3种方法   网页使用iframe嵌入网页时,有时候需要动态处理src的值,而不是写死的,所以我们需要知道如何给iframe src赋值,通常是使用js或 ...

随机推荐

  1. gcov 统计 inline 函数

    gcov 统计 inline 函数 (金庆的专栏) gcov可以统计 inline  函数,可是实际使用中碰到统计次数总是为0的现象. 假设类A的头文件为 A.h, 实现文件为 A.cpp. A 有几 ...

  2. TCP的定时器系列 — 超时重传定时器

    主要内容:TCP定时器概述,超时重传定时器.ER延迟定时器.PTO定时器的实现. 内核版本:3.15.2 我的博客:http://blog.csdn.net/zhangskd Q:一条TCP连接会使用 ...

  3. 【Mac】Mac OS X 安装GNU命令行工具

    macos的很多用户都是做it相关的人,类unix系统带来了很多方面,尤其是经常和linux打交道的人. 但是作为经常使用linux 命令行的人发现macos中的命令行工具很多都是bsd工具,跟lin ...

  4. [WinForm]C# .net防止一个程序(WinForm)重复运行的方法。

    最近比较忙,邮件预警系统暂停了没时间去处理,临时处理:直接执行exe文件! 可是问题来了: 我点击了两次,原来几乎在同时执行这个进程,我在程序中有线程时间睡眠2秒一次等待队列,打开进程果然两个MAIL ...

  5. (六十二)纯代码搭建UI

    在Xcode6中,去掉了Empty Application的选项,因此可以通过先创建SingleView,再删除storyboard,并且把工程设置中的main Interface清空. 通过AppD ...

  6. ORA-04091错误原因与解决方法

    最近工作中写了一触发器报错:ORA-04091:table XX  is mutating, trigger/function may not see it. 下面通过官方文档及网友提供资料分析一下错 ...

  7. 【翻译】使用Ext JS设计响应式应用程序

    原文:Designing Responsive Applications with Ext JS 在当今这个时代,用户都希望Web应用程序无论在形状还是大小上,既能在桌面电脑,也能在移动设备上使用.使 ...

  8. 如何优化你的布局层级结构之RelativeLayout和LinearLayout及FrameLayout性能分析

    转载请注明出处:http://blog.csdn.net/hejjunlin/article/details/51159419 如何优化你的布局层级结构之RelativeLayout和LinearLa ...

  9. 【公开课】【阿里在线技术峰会】何登成:AliSQL性能优化与功能突破的演进之路

    MySQL的公开课,可能目前用不上这些,但是往往能在以后想解决方案的时候帮助到我.以下是阿里对公开课的整理 摘要: 本文根据阿里高级数据库专家何登成在首届阿里巴巴在线技术峰会上的分享整理而成.他主要介 ...

  10. Android 数据库框架ormlite

    Android 数据库框架ormlite 使用精要 前言 本篇博客记录一下笔者在实际开发中使用到的一个数据库框架,这个可以让我们快速实现数据库操作,避免频繁手写sql,提高我们的开发效率,减少出错的机 ...