如何使用ES6/ES7语法导入jQuery UI?

Leo*_*Joy 37 jquery jquery-ui npm reactjs redux

我试图在reactJS/Redux应用程序中使用一些jQuery UI功能.我使用以下方法导入了jQuery和jQuery UI:

npm install jquery jquery-ui
Run Code Online (Sandbox Code Playgroud)

然后我尝试过:

import $ from 'jquery';
import jQuery from 'query';
import jQuery-ui from 'jquery-ui';
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试执行以下操作时,似乎不会导入jQuery UI:

componentDidMount() {
  $('ol#myList').selectable();
}
Run Code Online (Sandbox Code Playgroud)

我相信问题在于jQuery UI.我究竟做错了什么?如何让jQuery UI与此堆栈一起使用?

谢谢!

bas*_*sil 44

我成功地使用了jquery-ui的部分导入.我的意思是只从jquery-ui导入到我的模块:

import $ from 'jquery';
import 'jquery-ui/themes/base/core.css';
import 'jquery-ui/themes/base/theme.css';
import 'jquery-ui/themes/base/selectable.css';
import 'jquery-ui/ui/core';
import 'jquery-ui/ui/widgets/selectable';
Run Code Online (Sandbox Code Playgroud)

(但考虑到我使用webpack https://webpack.github.io/,在其他环境方法可能会有所不同)


Mor*_*rio 9

我先来,

npm install jquery-ui-bundle --save
Run Code Online (Sandbox Code Playgroud)

当我需要它时,我

import 'jquery-ui-bundle';
import 'jquery-ui-bundle/jquery-ui.css';
Run Code Online (Sandbox Code Playgroud)

  • 只是为了澄清`--save`包括库,因为它没有被手动编辑.如果您需要使用自定义代码修改任何内容,请使用`--save-dev` (2认同)

cwt*_*uan 8

在webpack配置中添加一个别名:

resolve: {
  alias: {
    'jquery-ui': 'jquery-ui-dist/jquery-ui.js'
  }
}
Run Code Online (Sandbox Code Playgroud)

将它们保存在package.json中:

npm i --save jquery
npm i --save jquery-ui-dist
Run Code Online (Sandbox Code Playgroud)

然后

import $ from 'jquery';
import 'jquery-ui';
Run Code Online (Sandbox Code Playgroud)

它适用于最后一个jquery(3.2.1)和jquery-ui(1.12.1)。

请参阅我的博客以获取详细信息:http : //code.tonytuan.org/2017/03/webpack-import-jquery-ui-in-es6-syntax.html

  • 谢谢,这很有帮助。我认为如果将最后一行替换为“import 'jquery-ui-dist/jquery-ui;”,则可以跳过“resolve”阶段 (3认同)
  • 我什至无法开始理解为什么他们会有“jquery-ui”和“jquery-ui-dist”包。我在这件事上浪费了很多时间。感谢您添加此答案! (2认同)

Alf*_*yum 5

组件名称是 jqueryui(无连字符),使用import jqueryui from 'jquery-ui' 或简单地import 'jquery-ui'