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自定义图片上传插件实例代码
Apr 04 jQuery
jquery与js实现全选功能的区别
Jun 11 jQuery
jQuery 中msgTips 顶部弹窗效果实现代码
Aug 14 jQuery
jQuery UI 实例讲解 - 日期选择器(Datepicker)
Sep 18 jQuery
jQuery EasyUI 选项卡面板tabs的使用实例讲解
Dec 25 jQuery
jQuery中内容过滤器简单用法示例
Mar 31 jQuery
jQuery实现文件编码成base64并通过AJAX上传的方法
Apr 12 jQuery
jQuery md5加密插件jQuery.md5.js用法示例
Aug 24 jQuery
jQuery动态生成的元素绑定事件操作实例分析
May 04 jQuery
jQuery操作元素的内容和样式完整实例分析
Jan 10 jQuery
jQuery实现获取多选框的值示例
Feb 07 jQuery
jQuery HTML css()方法与css类实例详解
May 20 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中foreach循环中使用引用要注意的地方
2011/01/02 PHP
php学习笔记 PHP面向对象的程序设计
2011/06/13 PHP
PHP同时连接多个mysql数据库示例代码
2014/03/17 PHP
php对包含html标签的字符串进行截取的函数分享
2014/06/19 PHP
PHP实现简易图形计算器
2020/08/28 PHP
javascript实现二分查找法实现代码
2007/11/12 Javascript
使用jscript实现二进制读写脚本代码
2008/06/09 Javascript
js兼容标准的表格变色效果
2008/06/28 Javascript
javascript cookies操作集合
2010/04/12 Javascript
jquery插件之定时查询待处理任务数量
2014/05/01 Javascript
JavaScript中setUTCFullYear()方法的使用简介
2015/06/12 Javascript
JS判断页面是否出现滚动条的方法
2015/07/17 Javascript
基于jquery实现智能提示控件intellSeach.js
2016/03/17 Javascript
jQuery实现简单倒计时功能的方法
2016/07/04 Javascript
js基于cookie记录来宾姓名的方法
2016/07/19 Javascript
从零学习node.js之详解异步控制工具async(八)
2017/02/27 Javascript
Angular2使用Augury来调试Angular2程序
2017/05/21 Javascript
jQuery复合事件用法示例
2017/06/10 jQuery
JS鼠标滚动分页效果示例
2017/07/05 Javascript
微信小程序点击按钮动态切换input的disabled禁用/启用状态功能
2020/03/07 Javascript
[02:44]2014DOTA2 国际邀请赛中国区预选赛 大神红毯秀
2014/05/25 DOTA
[04:56]经典回顾:前Ehome 与 前LGD
2015/02/26 DOTA
python为tornado添加recaptcha验证码功能
2014/02/26 Python
Python的Flask开发框架简单上手笔记
2015/11/16 Python
python生成器表达式和列表解析
2016/03/10 Python
python3使用matplotlib绘制散点图
2019/03/19 Python
pycharm 批量修改变量名称的方法
2019/08/01 Python
完美解决keras 读取多个hdf5文件进行训练的问题
2020/07/01 Python
python爬虫筛选工作实例讲解
2020/11/23 Python
Python爬虫+Tkinter制作一个翻译软件的示例
2021/02/20 Python
英国最大的宝石首饰超市:QP Jewellers
2018/09/23 全球购物
博士研究生自我鉴定范文
2013/12/04 职场文书
公司总经理助理岗位职责
2014/07/09 职场文书
解除租房协议书
2014/12/03 职场文书
2015年节能减排工作总结
2015/05/14 职场文书
Python 中面向接口编程
2022/05/20 Python