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 相关文章推荐
Stop SQL Server
Jun 21 Javascript
js兼容标准的表格变色效果
Jun 28 Javascript
JS测试显示屏分辨率以及屏幕尺寸的方法
Nov 22 Javascript
理解javascript回调函数
Dec 28 Javascript
js简单倒计时实现代码
Apr 30 Javascript
利用jQuery实现CheckBox全选/全不选/反选的简单代码
May 31 Javascript
JavaScript实现时间倒计时跳转(推荐)
Jun 28 Javascript
js绘制购物车抛物线动画
Nov 18 Javascript
基于JavaScript实现前端文件的断点续传
Oct 17 Javascript
10道典型的JavaScript面试题
Mar 22 Javascript
使用node.js对音视频文件加密的实例代码
Aug 30 Javascript
Vue.js watch监视属性知识点总结
Nov 11 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代码
2010/07/17 PHP
highchart数据源纵轴json内的值必须是int(详解)
2017/02/20 PHP
php高清晰度无损图片压缩功能的实现代码
2018/12/09 PHP
PHP 构造函数和析构函数原理与用法分析
2020/04/21 PHP
js 弹出菜单/窗口效果
2011/10/30 Javascript
javascript 图片裁剪技巧解读
2012/11/15 Javascript
JQuery中根据属性或属性值获得元素(6种情况获取方法)
2013/01/17 Javascript
javascript学习笔记(三)BOM和DOM详解
2014/09/30 Javascript
JavaScript使用replace函数替换字符串的方法
2015/04/06 Javascript
Javascript刷新页面的实例
2017/09/23 Javascript
了解JavaScript函数中的默认参数
2019/05/30 Javascript
JavaScript跳出循环的三种方法(break, return, continue)
2019/07/30 Javascript
js动态获取时间的方法分析
2019/08/02 Javascript
Vue发布订阅模式实现过程图解
2020/04/30 Javascript
[42:22]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第一局
2016/02/27 DOTA
[47:48]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第三局
2016/02/28 DOTA
[04:44]DOTA2 2017全国高校联赛视频回顾
2017/08/21 DOTA
python中pylint使用方法(pylint代码检查)
2018/04/06 Python
Python使用cx_Freeze库生成msi格式安装文件的方法
2018/07/10 Python
flask框架路由常用定义方式总结
2019/07/23 Python
Python3 sys.argv[ ]用法详解
2019/10/24 Python
python实现感知机模型的示例
2020/09/30 Python
Python爬虫制作翻译程序的示例代码
2021/02/22 Python
如何利用input事件来监听移动端的输入
2016/04/15 HTML / CSS
俄罗斯三星品牌商店:GalaxyStore
2020/11/04 全球购物
高中毕业自我鉴定
2013/12/16 职场文书
《蜗牛》教学反思
2014/02/18 职场文书
《掌声》教学反思
2014/02/23 职场文书
酒店爱岗敬业演讲稿
2014/09/02 职场文书
工程承包协议书
2014/10/20 职场文书
群众路线教育实践活动整改落实情况汇报
2014/10/28 职场文书
2015年党员承诺书
2015/01/21 职场文书
大四学生个人总结
2015/02/15 职场文书
国庆节新闻稿
2015/07/17 职场文书
毕业生入职感言
2015/07/31 职场文书
基于CSS3画一个iPhone
2021/04/21 HTML / CSS