Angular2使用jQuery的方法教程


Posted in jQuery onMay 28, 2017

前言

Angular2是以TypeScript语言作为默认编码语言,所以你看到的全部都是.ts结尾的文件。

那什么是TypeScript

首先,它是一个编译型语言;既然是编译型,那么你像重构、导航、智能提醒这种工具属性就可以发挥出来,所以你会发现使用VS CODE来写Angular简直就是绝配。

同时,TypeScript还带来一些ES6/7才有特性,比如let、const、async等,你无须关心ES几。

最霸气,TypeScript还是一个强类型、泛型、多态等一些面向对象编程的东西。

那,为何我们不选它呢?

当然,说了这么多,这跟主题看似无关,但如果你了解这些,才能看到问题的本质。

首先,第一关键点编译型,既然是编译型,那么你在代码中出现的任何变量、类、函数都是必须要存在,否则TA就会在编译时报错。

但,问题来了,现在的JavaScript世界中已经有那么多现成的第三方库,难道说都不能用了?非也!

TypeScript一开始就照顾这些了,所以就会有一个叫.d.ts的声明文件。MS当然不会让你去编写这一个文件,所以就有一个叫http://definitelytyped.org/ 网站,TA汇集了很多现成类库的第三方.d.ts的声明文件提供我们下载。

方法一

当然是使用最正规军了,用命令安装jQuery的声明文件。

npm install -D @types/jquery

以及使用

import * as $ from 'jquery';

$('body').addClass('');

完美的智能提示,如果你在VS CODE下的话。

方法二

对于一些并未提供 .d.ts 声明文件的类库,我们怎么办?那当然只能自己写了。

什么?自己写?很困难吧!很复杂吧!

没那么一回事,声明文件其实是对一些类库接口的描述,以下是我截取一段jQuery声明文件的部分代码

interface JQueryStatic {
 /**
  * 去掉字符串首尾空格
  *
  * @param str 字符串
  * @see {@link https://api.jquery.com/jQuery.trim/}
  */
 trim(str: string): string;
}

declare var $: JQueryStatic;

我还特意译成中文,这里的含量很少,最关键的就是 declare 它就是把一个变量 $ 定义成类型 JQueryStatic (还是个接口)。

这样,TS编译器在遇到 $ 时会去找该类型,并且你的代码里面不能出现 $.time1() 之类的,因为你的接口,只有一个 $.trim()

等等,jQuery几十个接口,我都要这么写吗?

NO!!!当然不是,除非你想写一个又漂亮、又好看、又是中文、又是完美智能提示的声明文件的话。

否则,你那就拿 any 类型吧,TA就是万能货。你不需要写一个很复杂的声明文件,只需要:

declare var $: any;

简单粗暴有效!

结论

哎~其实是因群里每天都可以看到一句【怎么使用jQuery】;虽然最简单的结果只需要一句话 declare var $: any;,但我还是??锇舌陆?艘淮蠖眩?刹话亚耙蚝蠊??宄??曳?。

另,此解只是抛砖引玉,在很多类库中都是通用的办法。但我建议还是找一些Angular2类库来使用,因为如何更有效的管理JavaScript运行,是一门学问。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家三水点靠木的支持。

jQuery 相关文章推荐
jQuery实现Select下拉列表进行状态选择功能
Mar 30 jQuery
简单实现jQuery弹窗效果
Oct 30 jQuery
jQuery实现的滑块滑动导航效果示例
Jun 04 jQuery
jQuery的Ajax接收java返回数据方法
Aug 11 jQuery
jQuery利用FormData上传文件实现批量上传
Dec 04 jQuery
jQuery时间戳和日期相互转换操作示例
Dec 07 jQuery
jQuery使用$.extend(true,object1, object2);实现深拷贝对象的方法分析
Mar 06 jQuery
jquery实现弹窗(系统提示框)效果
Dec 10 jQuery
jQuery操作元素追加内容示例
Jan 10 jQuery
jQuery实现简易聊天框
Feb 08 jQuery
jquery实现手风琴案例
May 04 jQuery
jQuery 函数实例分析【函数声明、函数表达式、匿名函数等】
May 19 jQuery
Jquery中attr与prop的区别详解
May 27 #jQuery
jQuery插件imgAreaSelect基础讲解
May 26 #jQuery
jQuery插件ImgAreaSelect实现头像上传预览和裁剪功能实例讲解一
May 26 #jQuery
jQuery导航条固定定位效果实例代码
May 26 #jQuery
bootstrap+jQuery实现的动态进度条功能示例
May 25 #jQuery
jQuery滚动插件scrollable.js用法分析
May 25 #jQuery
jQuery Masonry瀑布流布局神器使用详解
May 25 #jQuery
You might like
php 过滤危险html代码
2009/06/29 PHP
PHP获取客户端真实IP地址的5种情况分析和实现代码
2014/07/08 PHP
CI框架安全类Security.php源码分析
2014/11/04 PHP
php微信公众平台示例代码分析(二)
2016/12/06 PHP
浅谈Laravel POST,PUT,PATCH 路由的区别
2019/10/15 PHP
ThinkPHP5.0框架实现切换数据库的方法分析
2019/10/30 PHP
JavaScript 以对象为索引的关联数组
2010/05/19 Javascript
HTML颜色选择器实现代码
2010/11/23 Javascript
用JS提交参数创建form表单在FireFox中遇到的问题
2013/01/16 Javascript
JS截取字符串常用方法详细整理
2013/10/28 Javascript
jQuery实现淡入淡出二级下拉导航菜单的方法
2015/08/28 Javascript
JS日期格式化之javascript Date format
2015/10/01 Javascript
JS字符串的切分用法实例
2016/02/22 Javascript
js添加绑定事件的方法
2016/05/15 Javascript
JavaScript toUpperCase()方法使用详解
2016/08/26 Javascript
详谈jQuery unbind 删除绑定事件 / 移除标签方法
2017/03/02 Javascript
javascript 中Cookie读、写与删除操作
2017/03/29 Javascript
node.js基于dgram数据报模块创建UDP服务器和客户端操作示例
2020/02/12 Javascript
[01:56]无止竞 再出发——中国军团出征2017年DOTA2国际邀请赛
2017/07/05 DOTA
Python中字典的基本知识初步介绍
2015/05/21 Python
利用Opencv中Houghline方法实现直线检测
2018/02/11 Python
PyCharm安装第三方库如Requests的图文教程
2018/05/18 Python
Django 使用Ajax进行前后台交互的示例讲解
2018/05/28 Python
pycharm 取消默认的右击运行unittest的方法
2018/11/29 Python
对python 自定义协议的方法详解
2019/02/13 Python
Python爬取数据保存为Json格式的代码示例
2019/04/09 Python
python3 中时间戳、时间、日期的转换和加减操作
2020/07/14 Python
call在Python中改进数列的实例讲解
2020/12/09 Python
弘扬雷锋精神活动演讲稿
2014/03/04 职场文书
铲车司机岗位职责
2014/03/15 职场文书
个人学习党的群众路线教育实践活动心得体会
2014/11/05 职场文书
2014年大堂经理工作总结
2014/11/21 职场文书
学术研讨会欢迎词
2015/01/26 职场文书
保研推荐信范文
2015/03/25 职场文书
收银员岗位职责范本
2015/04/07 职场文书
给学校的建议书400字
2015/09/14 职场文书