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 相关文章推荐
window.onload 加载完毕的问题及解决方案(下)
Jul 09 Javascript
JQuery在光标位置插入内容的实现代码
Jun 18 Javascript
添加JavaScript重载函数的辅助方法2
Jul 04 Javascript
淘宝搜索框效果实现分析
Mar 05 Javascript
原生js实现fadein 和 fadeout淡入淡出效果
Jun 05 Javascript
javascript操作ul中li的方法
May 14 Javascript
JS实现带关闭功能的阿里妈妈网站顶部滑出banner工具条代码
Sep 17 Javascript
解决jquery插件:TypeError:$.browser is undefined报错的方法
Nov 21 Javascript
jQuery Validate验证表单时多个name相同的元素只验证第一个的解决方法
Dec 24 Javascript
JavaScript文件的同步和异步加载的实现代码
Aug 19 Javascript
javascript Canvas动态粒子连线
Jan 01 Javascript
vue使用element-ui按需引入
May 20 Vue.js
详解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
dedecms后台验证码总提示错误的解决方法
2007/03/21 PHP
有关 PHP 和 MySQL 时区的一点总结
2008/03/26 PHP
基于php socket(fsockopen)的应用实例分析
2013/06/02 PHP
PDO防注入原理分析以及使用PDO的注意事项总结
2014/10/23 PHP
PHP模型Model类封装数据库操作示例
2019/03/14 PHP
PHP safe_mode开启对于PHP系统函数有什么影响
2020/11/10 PHP
wap浏览自动跳转到wap页面的js代码
2014/05/17 Javascript
JavaScript设计模式之工厂模式和构造器模式
2015/02/11 Javascript
Bootstrap每天必学之导航条
2015/11/27 Javascript
JavaScript类的写法
2016/09/17 Javascript
利用HTML5+Socket.io实现摇一摇控制PC端歌曲切换
2017/01/13 Javascript
vue底部加载更多的实例代码
2018/06/29 Javascript
通过vue写一个瀑布流插件代码实例
2019/09/07 Javascript
js 对象使用的小技巧实例分析
2019/11/08 Javascript
JavaScript计算出两个数的差值
2020/03/19 Javascript
在Python中操作字典之update()方法的使用
2015/05/22 Python
Python对list列表结构中的值进行去重的方法总结
2016/05/07 Python
Scrapy基于selenium结合爬取淘宝的实例讲解
2018/06/13 Python
浅谈django的render函数的参数问题
2018/10/16 Python
Python unittest工作原理和使用过程解析
2020/02/24 Python
Python递归函数特点及原理解析
2020/03/04 Python
Python semaphore evevt生产者消费者模型原理解析
2020/03/18 Python
python 装饰器重要在哪
2021/02/14 Python
Holiday Inn中国官网:IHG旗下假日酒店预订
2018/04/08 全球购物
DJI全球:DJI Global
2021/03/15 全球购物
C#怎么让一个窗口居中显示?
2015/10/20 面试题
应聘教师自荐信
2013/10/12 职场文书
体育活动总结范文
2014/05/04 职场文书
课例研修方案
2014/05/31 职场文书
解除劳动合同协议书范本
2014/09/13 职场文书
2014市国税局对照检查材料思想汇报
2014/09/23 职场文书
企业法人授权委托书
2014/09/25 职场文书
检讨书格式
2015/05/07 职场文书
毕业生自我鉴定范文
2019/05/13 职场文书
CSS实现多个元素在盒子内两端对齐效果
2021/03/30 HTML / CSS
微软Win11 全新照片应用面向 Dev预览版推出 新版本上手体验图集
2022/09/23 数码科技