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插件HighCharts绘制简单2D折线图效果示例【附demo源码】
Mar 21 jQuery
jQuery判断邮箱格式对错实例代码讲解
Apr 12 jQuery
jQuery实现简单的抽奖游戏
May 05 jQuery
JQuery EasyUI的一些常用组件
Jul 12 jQuery
认识jQuery的Promise的具体使用方法
Oct 10 jQuery
jquery中有哪些api jQuery主要API
Nov 20 jQuery
使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例
Jan 25 jQuery
jQuery HTML获取内容和属性操作实例分析
May 20 jQuery
Jquery高级应用Deferred对象原理及使用实例
May 28 jQuery
jQuery实现移动端下拉展现新的内容回弹动画
Jun 24 jQuery
jQuery实现滑动开关效果
Aug 02 jQuery
详解jQuery的核心函数和事件处理
Feb 18 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/03/02 日漫
千呼万唤始出来,DOTA2勇士令状不朽宝藏Ⅱ现已推出
2020/08/25 DOTA
wordpress之wp-settings.php
2007/08/17 PHP
php file_get_contents取文件中数组元素的方法
2017/04/01 PHP
详解PHP素材图片上传、下载功能
2019/04/12 PHP
PHP检测一个数组有没有定义的方法步骤
2019/07/20 PHP
运用Windows XP附带的Msicuu.exe、Msizap.exe来彻底卸载顽固程序
2007/04/21 Javascript
用JavaScript隐藏控件的方法
2009/09/21 Javascript
不同的jQuery API来处理不同的浏览器事件
2012/12/09 Javascript
JavaScript判断前缀、后缀是否是空格的方法
2015/04/15 Javascript
jquery插件unobtrusive实现片段式加载
2015/06/15 Javascript
易操作的jQuery表单提示插件
2015/12/01 Javascript
Angularjs的Controller间通信机制实例分析
2016/11/07 Javascript
jQuery实现多张图片上传预览(不经过后端处理)
2017/04/29 jQuery
JavaScript实现瀑布流图片效果
2017/06/30 Javascript
JavaScript轮播停留效果的实现思路
2018/05/24 Javascript
详解vue添加删除元素的方法
2018/06/30 Javascript
JS基于Location实现访问Url、重定向及刷新页面的方法分析
2018/12/03 Javascript
详解Vue 全局变量,局部变量
2019/04/17 Javascript
webpack-mvc 传统多页面组件化开发详解
2019/05/07 Javascript
在vue项目中引用Antv G2,以饼图为例讲解
2020/10/28 Javascript
Python中pygame安装方法图文详解
2015/11/11 Python
Python 将pdf转成图片的方法
2018/04/23 Python
使用Python快速搭建HTTP服务和文件共享服务的实例讲解
2018/06/04 Python
python中pika模块问题的深入探究
2018/10/13 Python
python实现对图片进行旋转,放缩,裁剪的功能
2019/08/07 Python
Python局部变量与全局变量区别原理解析
2020/07/14 Python
市场营销专科应届生求职信
2013/11/24 职场文书
办公室秘书自我鉴定
2014/01/18 职场文书
本科毕业生应聘自荐信范文
2014/06/26 职场文书
教师师德师风整改措施
2014/10/24 职场文书
小学优秀教师事迹材料
2014/12/16 职场文书
中班下学期幼儿评语
2014/12/30 职场文书
承诺书的内容有哪些,怎么写?
2019/06/21 职场文书
日本读研:怎样写好一篇日本研究计划书?
2019/07/15 职场文书
Java详细解析==和equals的区别
2022/04/07 Java/Android