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.uploadifive插件怎么解决上传限制图片或文件大小问题
May 08 jQuery
jQuery实现div跟随鼠标移动
Aug 20 jQuery
jquery动态赋值id与动态取id方法示例
Aug 21 jQuery
jQuery进阶实践之利用最优雅的方式如何写ajax请求
Dec 20 jQuery
jQuery实现的滑块滑动导航效果示例
Jun 04 jQuery
jquery获取select选中值的文本,并赋值给另一个输入框的方法
Aug 21 jQuery
jQuery解析json格式数据示例
Sep 01 jQuery
jQuery实现点击图标div循环放大缩小功能
Sep 30 jQuery
jQuery创建折叠式菜单
Jun 15 jQuery
jQuery实现checkbox全选、反选及删除等操作的方法详解
Aug 02 jQuery
jquery实现轮播图特效
Apr 12 jQuery
如何使用jQuery操作Cookies方法解析
Sep 08 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
《魔兽争霸3:重制版》更新 多项视觉效果调整
2020/05/04 魔兽争霸
PHP-Fcgi下PHP的执行时间设置方法
2013/08/02 PHP
php微信浏览器分享设置以及回调详解
2016/08/01 PHP
PHP 中使用ajax时一些常见错误总结整理
2017/02/27 PHP
PHP函数积累总结
2019/03/19 PHP
关于laravel-admin ueditor 集成并解决刷新的问题
2019/10/21 PHP
JavaScript Object的extend是一个常用的功能
2009/12/02 Javascript
Javascript 中的 && 和 || 使用小结
2010/04/25 Javascript
Js Jquery创建一个弹出层可加载一个页面
2014/05/08 Javascript
原生js实现的贪吃蛇网页版游戏完整实例
2015/05/18 Javascript
jquery中的工具使用方法$.isFunction, $.isArray(), $.isWindow()
2015/08/09 Javascript
简单谈谈Javascript中类型的判断
2015/10/19 Javascript
JS实现从顶部下拉显示的带动画QQ客服特效代码
2015/10/24 Javascript
jQuery如何获取动态添加的元素
2016/06/24 Javascript
Jil,高效的json序列化和反序列化库
2017/02/15 Javascript
基于JavaScript实现幸运抽奖页面
2020/07/05 Javascript
element-ui表格数据转换的示例代码
2018/08/24 Javascript
解决vue2.0 element-ui中el-upload的before-upload方法返回false时submit()不生效问题
2018/08/24 Javascript
小程序指纹验证的实现代码
2018/12/04 Javascript
WEB前端性能优化的7大手段详解
2020/02/04 Javascript
javascript实现贪吃蛇小练习
2020/07/05 Javascript
JS中循环遍历数组的四种方式总结
2021/01/23 Javascript
Python写的PHPMyAdmin暴力破解工具代码
2014/08/06 Python
详解python运行三种方式
2019/05/13 Python
python正则表达式实例代码
2020/03/03 Python
利用4行Python代码监测每一行程序的运行时间和空间消耗
2020/04/22 Python
Python如何将函数值赋给变量
2020/04/28 Python
详解用python -m http.server搭一个简易的本地局域网
2020/09/24 Python
.NET面试题:什么是反射
2016/09/30 面试题
表扬稿格式范文
2015/01/16 职场文书
2015年保卫科工作总结
2015/05/14 职场文书
2016年“我们的节日·端午节”活动总结
2016/04/01 职场文书
学生检讨书范文
2019/06/24 职场文书
话题作文之学会尊重
2019/12/16 职场文书
SpringCloud Function SpEL注入漏洞分析及环境搭建
2022/04/08 Java/Android
Python sklearn分类决策树方法详解
2022/09/23 Python