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之六 缓存数据功能介绍
Jun 21 Javascript
js禁止小键盘输入数字功能代码
Aug 01 Javascript
JS自动缩小超出大小的图片
Oct 12 Javascript
javascript实现TreeView 无刷新展开的实例代码
Jul 13 Javascript
js中substring和substr的详细介绍与用法
Aug 29 Javascript
Jquery利用mouseenter和mouseleave实现鼠标经过弹出层且可以点击
Feb 12 Javascript
JavaScript中自定义事件用法分析
Dec 23 Javascript
Vue.js实战之Vuex的入门教程
Apr 01 Javascript
从零开始学习Node.js系列教程之SQLite3和MongoDB用法分析
Apr 13 Javascript
浅谈react+es6+webpack的基础配置
Aug 09 Javascript
详解从买域名到使用pm2部署node.js项目全过程
Mar 07 Javascript
JS中创建自定义类型的常用模式总结【工厂模式,构造函数模式,原型模式,动态原型模式等】
Jan 19 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
Smarty保留变量用法分析
2016/05/23 PHP
PHP页面输出搜索后跳转下一页的处理方法
2016/09/30 PHP
laravel-admin 管理平台获取当前登陆用户信息的例子
2019/10/08 PHP
PHP基于phpqrcode类生成二维码的方法示例详解
2020/08/07 PHP
推荐一些非常不错的javascript学习资源站点
2007/08/29 Javascript
解析jquery获取父窗口的元素
2013/06/26 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
2013/08/12 Javascript
jQuery中closest()函数用法实例
2015/01/07 Javascript
JavaScript实现信用卡校验方法
2015/04/07 Javascript
详解浏览器渲染页面过程
2017/02/09 Javascript
jQuery插件FusionCharts实现的Marimekko图效果示例【附demo源码】
2017/03/24 jQuery
ES6新特性:使用export和import实现模块化详解
2017/07/31 Javascript
Node.js成为Web应用开发最佳选择的原因
2018/02/05 Javascript
p5.js入门教程之键盘交互
2018/03/19 Javascript
在ES5与ES6环境下处理函数默认参数的实现方法
2018/05/13 Javascript
React-router4路由监听的实现
2018/08/07 Javascript
VUE+Element环境搭建与安装的方法步骤
2019/01/24 Javascript
[04:19]DOTA2完美大师赛第四天精彩集锦
2017/11/26 DOTA
[49:27]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第一场
2018/04/05 DOTA
python 文件和路径操作函数小结
2009/11/23 Python
简介Python设计模式中的代理模式与模板方法模式编程
2016/02/02 Python
Python使用lxml模块和Requests模块抓取HTML页面的教程
2016/05/16 Python
django项目用higcharts统计最近七天文章点击量
2019/08/17 Python
植村秀美国官网:Shu Uemura美国
2019/03/19 全球购物
C和C++经典笔试题附答案解析
2014/08/18 面试题
为什么在使用动态 SQL 语句时必须为低层数据库对象授予权限
2012/12/13 面试题
西部世纪.net笔试题面试题
2014/04/03 面试题
Java面试笔试题大全
2016/11/23 面试题
挂职思想汇报
2013/12/31 职场文书
表彰先进集体通报
2014/01/12 职场文书
班级出游活动计划书
2014/08/15 职场文书
工人先锋号申报材料
2014/12/29 职场文书
社区服务活动感想
2015/08/11 职场文书
应用最多的公文《通知》如何写?
2019/04/02 职场文书
对Golang中的FORM相关字段理解
2021/05/02 Golang
详解Python内置模块Collections
2022/03/22 Python