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 28 jQuery
jQuery实现简单的滑动导航代码(移动端)
May 22 jQuery
Jquery中attr与prop的区别详解
May 27 jQuery
各种选择框jQuery的选中方法(实例讲解)
Jun 27 jQuery
jQuery Pagination分页插件_动力节点Java学院整理
Jul 17 jQuery
使用vue与jquery实时监听用户输入状态的操作代码
Sep 19 jQuery
基于jquery实现五星好评
Nov 18 jQuery
使用jQuery如何写一个含验证码的登录界面
May 13 jQuery
jQuery操作attr、prop、val()/text()/html()、class属性
May 23 jQuery
jquery 回调操作实例分析【回调成功与回调失败的情况】
Sep 27 jQuery
Jquery高级应用Deferred对象原理及使用实例
May 28 jQuery
jQuery实现简单轮播图效果
Dec 27 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简单日历函数
2015/10/28 PHP
php 数组字符串搜索array_search技巧
2016/07/05 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
php curl发送请求实例方法
2019/08/01 PHP
js里的prototype使用示例
2010/11/19 Javascript
HTML中的setCapture和releaseCapture使用介绍
2012/03/21 Javascript
Javascript/Jquery——简单定时器的多种实现方法
2013/07/03 Javascript
Jquery封装tab自动切换效果的具体实现
2013/07/13 Javascript
Bootstrap零基础入门教程(三)
2016/07/18 Javascript
写一个移动端惯性滑动&回弹Vue导航栏组件 ly-tab
2018/03/06 Javascript
Vue实现双向绑定的原理以及响应式数据的方法
2018/07/02 Javascript
使用puppeteer爬取网站并抓出404无效链接
2018/12/20 Javascript
一百行JS代码实现一个校验工具
2019/04/30 Javascript
使用JS判断页面是首次被加载还是刷新
2019/05/26 Javascript
javascript 对象 与 prototype 原型用法实例分析
2019/11/11 Javascript
微信小程序如何通过用户授权获取手机号(getPhoneNumber)
2020/01/21 Javascript
[02:01]大师之路——DOTA2完美大师赛11月论剑上海
2017/11/06 DOTA
[51:53]完美世界DOTA2联赛循环赛 LBZS vs DM BO2第二场 11.01
2020/11/02 DOTA
用python写asp详细讲解
2013/12/16 Python
对Python subprocess.Popen子进程管道阻塞详解
2018/10/29 Python
python实现画循环圆
2019/11/23 Python
Python django框架开发发布会签到系统(web开发)
2020/02/12 Python
Python文件操作模拟用户登陆代码实例
2020/06/09 Python
HTML5上传文件显示进度的实现代码
2012/08/30 HTML / CSS
HTML5图片预览实例分享
2014/06/04 HTML / CSS
Oakley西班牙官方商店:太阳眼镜和男女运动服
2019/04/26 全球购物
SQL Server的固定数据库角色都有哪些?对应的服务器权限有哪些?
2013/05/18 面试题
英语系毕业生自荐信
2013/10/31 职场文书
2014小学植树节活动总结
2014/03/10 职场文书
药品业务员岗位职责
2014/04/17 职场文书
党员个人年度总结
2015/02/14 职场文书
刮痧观后感
2015/06/05 职场文书
研讨会致辞
2015/07/31 职场文书
只需要这一行代码就能让python计算速度提高十倍
2021/05/24 Python
MySQL 全文检索的使用示例
2021/06/07 MySQL
Win11局域网共享权限在哪里设置? Win11高级共享的设置技巧
2022/04/05 数码科技