Vue 中如何正确引入第三方模块的方法步骤


Posted in Javascript onMay 05, 2019

方法一:配置 webpack ProvidePlugin 全局引入

假设要使用到 jquery,那么可以通过配置 webpack 的 ProvidePlugin 的插件来全局引入:

https://webpack.js.org/plugins/provide-plugin/

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

方法二:包装成插件在 Vue 中调用 use 方法安装

另外一种比较靠谱的方法是将第三方模块打包成插件,如我需要全局使用 echarts,那么在 src 目录下新建一个 lib,并创建名为 echarts.js 的文件:

import echarts from 'echarts'

export default {
 install (Vue) {
  Object.defineProperty(Vue.prototype, '$echarts', {
   value: echarts
  })
 }
}

上述代码 export 一个对象,对象包含一个 install 方法,该方法的参数是 Vue 构造函数,我们使用 Object.defineProperty 或 Reflect 的方法将 $echarts 定义到 Vue.prototype 中去。

然后在项目中使用:

import echarts from './lib/echarts'

Vue.use(echarts) // use

new Vue({
  // ...
}).$mount('#app')

这样就可以在 vue 实例中通过 $echarts 来使用

// ...
let myChart = this.$echarts.init(this.$refs.main)
// ...

其他方法

其他还有在 window 对象中全局定义;或使用 Vue.prototype.xxx = xxx 等,都存在各样问题,如 window 会导致全局作用域污染;后者定义方式不可靠,比方说 echarts 模块太大,会经常出现扩展定义失败导致的报错

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript学习笔记(十)
Jan 17 Javascript
js压缩工具 yuicompressor 使用教程
Mar 31 Javascript
JavaScript判断一个URL链接是否有效的实现方法
Oct 08 Javascript
仿微博字符限制效果实现代码
Apr 20 Javascript
学习js在线html(富文本,所见即所得)编辑器
Dec 18 Javascript
javascript ajax 仿百度分页函数
Oct 29 Javascript
JavaScript中的this到底是什么(一)
Dec 09 Javascript
JavaScript实现隐藏省略文字效果的方法
Apr 27 Javascript
自适应布局meta标签中viewport、content、width、initial-scale、minimum-scale、maximum-scale总结
Aug 18 Javascript
mongodb初始化并使用node.js实现mongodb操作封装方法
Apr 02 Javascript
Vue初始化中的选项合并之initInternalComponent详解
Jun 11 Javascript
解决VUE项目使用Element-ui 下拉组件的验证失效问题
Nov 07 Javascript
详解vue的双向绑定原理及实现
May 05 #Javascript
Vue+Express实现登录注销功能的实例代码
May 05 #Javascript
Vue 递归多级菜单的实例代码
May 05 #Javascript
微信小程序自定义组件传值 页面和组件相互传数据操作示例
May 05 #Javascript
详解Vue调用手机相机和相册以及上传
May 05 #Javascript
原生JS实现动态添加新元素、删除元素方法
May 05 #Javascript
Angular实现svg和png图片下载实现
May 05 #Javascript
You might like
PHP实现的多彩标签效果代码分享
2014/08/21 PHP
PHP数组和explode函数示例总结
2015/05/08 PHP
详解PHP中的 input属性(隐藏 只读 限制)
2017/08/14 PHP
JavaScript 在线压缩和格式化收藏
2009/01/16 Javascript
javascript 流畅动画实现原理
2009/09/08 Javascript
js 数值项目的格式化函数代码
2010/05/14 Javascript
Jquery Select操作方法集合脚本之家特别版
2010/05/17 Javascript
拖动table标题实现改变td的大小(css+js代码)
2013/04/16 Javascript
JavaScript实现穷举排列(permutation)算法谜题解答
2014/12/29 Javascript
JavaScript实现级联菜单的方法
2015/06/29 Javascript
使用coffeescript编写node.js项目的方法汇总
2015/08/05 Javascript
JS实现鼠标框选效果完整实例
2016/06/20 Javascript
node网页分段渲染详解
2016/09/05 Javascript
PHP抓取HTTPS内容和错误处理的方法
2016/09/30 Javascript
localStorage的黑科技-js和css缓存机制
2017/02/06 Javascript
JavaScript与JQUERY获取元素的宽、高和位置
2017/02/26 Javascript
详解axios在node.js中的post使用
2017/04/27 Javascript
微信小程序实现获取小程序码和二维码java接口开发
2019/03/29 Javascript
layui使用form表单实现post请求页面跳转的方法
2019/09/14 Javascript
浅谈Three.js截图并下载的大坑
2019/11/01 Javascript
JS检索下拉列表框中被选项目的索引号(selectedIndex)
2019/12/17 Javascript
vue项目中使用vue-layer弹框插件的方法
2020/03/11 Javascript
jQuery使用jsonp实现百度搜索的示例代码
2020/07/08 jQuery
[02:41]DOTA2亚洲邀请赛小组赛第三日 赛事回顾
2015/02/01 DOTA
Python模块包中__init__.py文件功能分析
2016/06/14 Python
python实现对服务器脚本敏感信息的加密解密功能
2019/08/13 Python
美国当红的名品折扣网:Gilt Groupe
2016/08/15 全球购物
C#中的验证控件有几种
2014/03/08 面试题
法人代表委托书
2014/04/04 职场文书
小学学校门卫岗位职责
2014/08/03 职场文书
夫妻婚内购房协议书
2014/10/05 职场文书
合作意向协议书
2015/01/29 职场文书
会计工作能力自我评价
2015/03/05 职场文书
优秀大学生自荐信
2015/03/26 职场文书
MongoDB日志切割的三种方式总结
2021/09/15 MongoDB
解析探秘fescar分布式事务实现原理
2022/02/28 Java/Android