webpack reactjs 如何引入jquery

我的 webpack.config.js加了插件

new webpack.ProvidePlugin({
    $: "jquery",
    jQuery: "jquery",
    "window.jQuery": "jquery"
})

Component

import React , {Component} from 'react'
import ReactDOM from 'react-dom'
require('./index.styl');

class Slider extends Component {
  componentDidMount(){
    this.props.onLoad();
  }

  initEvent(){
    $(body).html()
    alert('initEvent1');
  }

  render(){
    if(this.props.focus.data){
      this.initEvent();
      return (
        <div className="slider nivoSlider">
        {this.props.focus.data.results.map(item =>
          <img src={item.url} key={item.url} />
        )}
        </div>
      )
    }else{
      return null;
    }
  }
}

export default Slider

我这里会报错 Uncaught (in promise) ReferenceError: $ is not defined
官网说不用再require('jquery')了,不知为什么报错?

阅读 13.7k
7 个回答

require 就像当于ES6中的import ,所以import $ from jquery

entry: {
    //其他模块//////
    vendor: ['react', 'react-dom', 'react-router', 'jquery']
}
new webpack.optimize.CommonsChunkPlugin('vendor', 'vendor.bundle.js'),
new webpack.ProvidePlugin({
    $: 'jquery',
    jQuery: "jquery",
    "window.jQuery": "jquery"
})

你这大概是代码问题吧, 把jq相关操作放到componentDidMount

你看你html page引入的js文件中,有jquery这个东西吗。我有点记不清了,我记得好像不需要额外的操作,但是看起来好像是你没有把jquery打到js的包里面

npm安装jQuery了吗?看下package.json里面有没有"jquery": "^2.2.1"

没有的话加上再试试 npm install --save-dev jquery

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题