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 相关文章推荐
js批量设置样式的三种方法不推荐使用with
Feb 25 Javascript
导航跟随滚动条置顶移动示例代码
Sep 11 Javascript
php读取sqlite数据库入门实例代码
Jun 25 Javascript
jQuery学习笔记之jQuery中的$
Jan 19 Javascript
剖析Node.js异步编程中的回调与代码设计模式
Feb 16 Javascript
JavaScript实现简洁的俄罗斯方块完整实例
Mar 01 Javascript
JavaScript提升性能的常用技巧总结【经典】
Jun 20 Javascript
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
Dec 15 Javascript
bootstrap制作jsp页面(根据值让table显示选中)
Jan 05 Javascript
Javascript实现跨域后台设置拦截的方法详解
Aug 04 Javascript
vue devtools的安装与使用教程
Aug 08 Javascript
Vue点击切换颜色的方法
Sep 13 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下连接mssql2005的代码
2011/01/17 PHP
基于php常用正则表达式的整理汇总
2013/06/08 PHP
日常整理PHP中简单的图形处理(经典)
2015/10/26 PHP
javascript 二分法(数组array)
2010/04/24 Javascript
jQuery判断元素是否是隐藏的代码
2011/04/24 Javascript
jQuery中的.bind()、.live()和.delegate()之间区别分析
2011/06/08 Javascript
js 自动播放的实例代码
2013/11/19 Javascript
JQuery表单验证插件EasyValidator用法分析
2014/11/15 Javascript
JS实现Fisheye效果动感放大菜单代码
2015/10/21 Javascript
Jquery日历插件制作简单日历
2015/10/28 Javascript
JavaScript如何实现在文本框(密码框)输入提示语
2015/12/25 Javascript
初步使用Node连接Mysql数据库
2016/03/03 Javascript
JavaScript随机生成颜色的方法
2016/10/15 Javascript
jQuery插件FusionCharts绘制的2D双面积图效果示例【附demo源码】
2017/04/11 jQuery
PHP自动加载autoload和命名空间的应用小结
2017/12/01 Javascript
微信小程序开发之改变data中数组或对象的某一属性值
2018/07/05 Javascript
vue treeselect获取当前选中项的label实例
2020/08/31 Javascript
js实现移动端轮播图滑动切换
2020/12/21 Javascript
Python实现在matplotlib中两个坐标轴之间画一条直线光标的方法
2015/05/20 Python
Python使用pylab库实现绘制直方图功能示例
2018/06/01 Python
Python实现读取txt文件中的数据并绘制出图形操作示例
2019/02/26 Python
Python 给定的经纬度标注在地图上的实现方法
2019/07/05 Python
在Django admin中编辑ManyToManyField的实现方法
2019/08/09 Python
超实用的 30 段 Python 案例
2019/10/10 Python
Python jieba结巴分词原理及用法解析
2020/11/05 Python
CSS3系列教程:背景图片(背景大小和多背景图) 应用说明
2012/12/19 HTML / CSS
Moda Italia荷兰:意大利男士服装
2019/08/31 全球购物
PHP开发工程师面试问题集锦
2012/11/01 面试题
电子信息科学专业自荐信
2014/01/30 职场文书
大学生校园创业计划书
2014/02/08 职场文书
物流管理毕业生自荐信范文
2014/03/15 职场文书
广告学专业求职信
2014/06/19 职场文书
《倍数和因数》教学反思
2016/02/23 职场文书
成人成长感言如何写?
2019/08/16 职场文书
Go标准容器之Ring的使用说明
2021/05/05 Golang
pytorch中的torch.nn.Conv2d()函数图文详解
2022/02/28 Python