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中each循环的跳出和结束实例
Aug 16 jQuery
jQuery 利用ztree实现树形表格的实例代码
Sep 27 jQuery
jquery如何实现点击空白处隐藏元素
Dec 05 jQuery
Angular5中调用第三方库及jQuery的添加的方法
Jun 07 jQuery
jQuery基于闭包实现的显示与隐藏div功能示例
Jun 09 jQuery
基于jQuery实现的设置文本区域的光标位置
Jun 15 jQuery
jQuery实现菜单的显示和隐藏功能示例
Jul 24 jQuery
vue-cli 引入jQuery,Bootstrap,popper的方法
Sep 03 jQuery
jQuery选择器选中最后一个元素,倒数第二个元素操作示例
Dec 10 jQuery
使用jquery的cookie实现登录页记住用户名和密码的方法
Mar 13 jQuery
jQuery内容选择器与表单选择器实例分析
Jun 28 jQuery
原生jQuery实现只显示年份下拉框
Dec 24 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的数组总结【经验】
2016/05/05 PHP
Ubuntu中支持PHP5与PHP7双版本的简单实现
2018/08/19 PHP
动态加载iframe
2006/06/16 Javascript
根据分辨率不同,调用不同的css文件
2006/08/25 Javascript
利用JS自动打开页面上链接的实现代码
2011/09/25 Javascript
用JavaScript仿PS里的羽化效果代码
2011/12/20 Javascript
js面向对象 多种创建对象方法小结
2012/05/21 Javascript
javascript如何创建表格(javascript绘制表格的二种方法)
2013/12/10 Javascript
2则自己编写的jQuery特效分享
2015/02/26 Javascript
js+html5实现canvas绘制圆形图案的方法
2015/06/05 Javascript
JavaScript实现多种排序算法
2016/02/24 Javascript
AngularJs表单验证实例详解
2016/05/30 Javascript
JS实现浏览器打印、打印预览示例
2017/02/28 Javascript
利用JQUERY实现多个AJAX请求等待的实例
2017/12/14 jQuery
Vue中props的使用详解
2018/06/15 Javascript
javascript和php使用ajax通信传递JSON的实例
2018/08/21 Javascript
vue.js中proxyTable 转发请求的实现方法
2018/09/20 Javascript
微信小程序实现传递多个参数与事件处理
2019/08/12 Javascript
Vue + Element-ui的下拉框el-select获取额外参数详解
2020/08/14 Javascript
[02:22]2018DOTA2亚洲邀请赛VG赛前采访
2018/04/03 DOTA
解决Python传递中文参数的问题
2015/08/04 Python
Python max内置函数详细介绍
2016/11/17 Python
Python实现常见的回文字符串算法
2018/11/14 Python
浅谈python中get pass用法
2019/03/19 Python
Python 实现数组相减示例
2019/12/27 Python
Python遍历字典方式就实例详解
2019/12/28 Python
Flask模板引擎Jinja2使用实例
2020/04/23 Python
pycharm中如何自定义设置通过“ctrl+滚轮”进行放大和缩小实现方法
2020/09/16 Python
python小技巧——将变量保存在本地及读取
2020/11/13 Python
使用CSS3美化HTML表单的技巧演示
2016/05/17 HTML / CSS
HTML5中外部浏览器唤起微信分享
2020/01/02 HTML / CSS
语文教育专业推荐信范文
2013/11/25 职场文书
《一本男孩子必读的书》教学反思
2014/02/19 职场文书
社区网格化管理实施方案
2014/03/21 职场文书
2014年办公室文员工作总结
2014/11/12 职场文书
英文慰问信
2015/02/14 职场文书