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 相关文章推荐
jQuery 技巧大全(新手入门篇)
May 12 Javascript
幻灯片带网页设计中的20个奇妙应用示例小结
May 27 Javascript
JavaScript词法作用域与调用对象深入理解
Nov 29 Javascript
JS不能跨域借助jquery获取IP地址的方法
Aug 20 Javascript
node.js中的http.request方法使用说明
Dec 14 Javascript
JS自定义选项卡函数及用法实例分析
Sep 02 Javascript
javascript检测移动设备横竖屏
May 21 Javascript
JQuery和HTML5 Canvas实现弹幕效果
Jan 04 Javascript
HTML中使背景图片自适应浏览器大小实例详解
Apr 06 Javascript
iview同时验证多个表单问题总结
Sep 29 Javascript
vuex 解决报错this.$store.commit is not a function的方法
Dec 17 Javascript
Vue scrollBehavior 滚动行为实现后退页面显示在上次浏览的位置
May 27 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生成sitemap.xml地图函数
2013/11/13 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
2019/09/02 PHP
jquery的Theme和Theme Switcher使用小结
2010/09/08 Javascript
javascript 基础篇4 window对象,DOM
2012/03/14 Javascript
JavaScript中的this关键字介绍与使用实例
2013/06/21 Javascript
JS不能跨域借助jquery获取IP地址的方法
2014/08/20 Javascript
jQuery中$.click()无效问题分析
2015/01/29 Javascript
jquery实现增加删除行的方法
2015/02/03 Javascript
JS实现的简洁二级导航菜单雏形效果
2015/10/13 Javascript
JavaScript实现广告弹窗效果
2016/08/09 Javascript
Javascript中函数名.length属性用法分析(对比arguments.length)
2016/09/16 Javascript
JS实现经典的中国地区三级联动下拉菜单功能实例【测试可用】
2017/06/06 Javascript
jQuery+Ajax请求本地数据加载商品列表页并跳转详情页的实现方法
2017/07/12 jQuery
vue-cli项目配置多环境的详细操作过程
2018/10/30 Javascript
VUE解决微信签名及SPA微信invalid signature问题(完美处理)
2019/03/29 Javascript
Android 自定义view仿微信相机单击拍照长按录视频按钮
2019/07/19 Javascript
基于axios 的responseType类型的设置方法
2019/10/29 Javascript
[02:02:38]VG vs Mineski Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
Python使用chardet判断字符编码
2015/05/09 Python
python Django模板的使用方法
2016/01/14 Python
Python中的字符串类型基本知识学习教程
2016/02/04 Python
一百多行python代码实现抢票助手
2018/09/25 Python
Python实现的逻辑回归算法示例【附测试csv文件下载】
2018/12/28 Python
python中比较两个列表的实例方法
2019/07/04 Python
python开头的coding设置方法
2019/08/08 Python
解决Mac下使用python的坑
2019/08/13 Python
pycharm双击无响应(打不开问题解决办法)
2020/01/10 Python
python导入库的具体方法
2020/06/18 Python
基于Python的自媒体小助手---登录页面的实现代码
2020/06/29 Python
Python3以GitHub为例来实现模拟登录和爬取的实例讲解
2020/07/30 Python
CSS3实现渐变背景兼容问题
2020/05/06 HTML / CSS
2019思想汇报范文
2019/05/21 职场文书
nginx常用命令放入shell脚本详解
2021/03/31 Servers
python munch库的使用解析
2021/05/25 Python
MySQL8.0的WITH查询详情
2021/08/30 MySQL
SQL Server #{}可以防止SQL注入
2022/05/11 SQL Server