webpack中的vue组件引用jquery

6 篇文章 0 订阅
前言

 main.js中我们引用了 jquery,$符号我们可以正常使用,但 window.$却不能,而且其他vue组件中也引用不到$;为什么呢?因为webpack是最后会把代码用闭包的方式打包,$对象并没有挂载在window下,其他组件中并没有引用jquery所以它自然是拿不到的,那么怎么能做到在main.js中一次引用,每个组件都能拿到呢?

方法一:expose-loader 讲jquery暴露至全局

操作

终端

npm i expose-loader -D //安装expose-loader

webpack.config.js (vue-cli 创建的项目可在 webpack.base.conf.js)中配置当引用 jquery 时使用 expose-loader

module: {
	rules: [
		{
			test: require.resolve('jquery'),
			loader: 'expose-loader?$'
		}	
	]
}

方法二:webpack插件法,给每个模块注入$

操作

webpack.config.js(vue-cli 创建的项目可在 webpack.base.conf.js)

const webpack = require('webpack')

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



通过以上两种方法后,我们可以在组件中使用jquery了

App.vue

<template>
	<div>
		<h4>这是App组件</h4>
	</div>
<template>

<script>
	$('h4').css('color','#c87')
</script>

<style scoped>

</style>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值