ES6:“import $ from 'jquery'"的真正含义

ES6: What does "import $ from 'jquery'" really means?

本文关键字:quot jquery from ES6 import      更新时间:2023-09-26

一开始我认为它只是意味着加载jQuery模块并在一个名为$的变量中初始化它。

但是,通过使用Atom与原子typescript,我得到了一个错误,说它"无法找到模块'jquery'"。尽管所有的代码都可以在浏览器中工作,但看起来原子类型脚本无法解析类似于import x from y这样的内容。

现在,看看ES6文档,我发现你从一个模块导入一个类/函数。其含义完全不同,它在以下情况下是有意义的:

import { Component } from 'angular2/core';

但是它在jQuery的情况下意味着什么呢?

我可能在同一个问题中混合了不同的问题,但任何解释都会清除这种混乱,所以提前感谢:)

语句import $ from jquery几乎相当于依赖注入。就像一个人会写import React from 'react'给自己访问一个文件中的React库,所以可以写import $ from jquery。(如果它把您弄糊涂了,这里使用美元符号是因为jQuery和它的方法是使用$ (又名$)访问的。 jQuery)操作符

对于正在抛出的错误,可能是以下几种情况:
  1. 如果你单独安装jQuery作为一个依赖在你的包。json文件以及包含来自jQuery CDN的<script>标记,此错误将被抛出。如果你是通过NPM使用jQuery,那么import $ from jquery语法是正确的/必要的。如果您打算通过CDN使用jQuery(就像我建议的那样),那么import语句是不必要的。(由于您已经在index.html中包含了该脚本标记,因此您可以在整个应用程序范围内访问jQuery及其库)。但不要两者都做。

  2. 还要注意,在import { Component } from 'angular2/core';语句的情况下,发生了一些稍微不同的事情。也就是说,一个是按照AMD规范导入名为export Component。在这种情况下,你可以把它想象成只导入较大的Angular2核心库的一部分,而不需要导入整个库。

只是为了确保,检查你实际上已经通过CDN或通过安装它作为一个NPM依赖给自己访问jQuery。