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 相关文章推荐
浅谈DOCTYPE对$(window).height()取值的影响
Jul 21 Javascript
防止重复发送 Ajax 请求
Feb 15 Javascript
Bootstrap输入框组件简单实现代码
Mar 06 Javascript
微信小程序实现下载进度条的方法
Dec 08 Javascript
webpack-url-loader 解决项目中图片打包路径问题
Feb 15 Javascript
vue模块拖拽实现示例代码
Mar 09 Javascript
vue项目移动端实现ip输入框问题
Mar 19 Javascript
taro开发微信小程序的实践
May 21 Javascript
实用的Vue开发技巧
May 30 Javascript
layui加载表格,绑定新增,编辑删除,查看按钮事件的例子
Sep 06 Javascript
vue实现文字加密功能
Sep 27 Javascript
javascript局部自定义鼠标右键菜单
Dec 08 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 获取select下拉列表框的值
2010/05/08 PHP
php json与xml序列化/反序列化
2013/10/28 PHP
php实现parent调用父类的构造方法与被覆写的方法
2015/02/11 PHP
分享一个Laravel好用的Cache宏
2015/03/02 PHP
php实现倒计时效果
2015/12/19 PHP
php写app用的框架整理
2019/09/29 PHP
jquery $.ajax入门应用一
2008/11/19 Javascript
JavaScript高级程序设计 阅读笔记(十七) js事件
2012/08/14 Javascript
网站繁简切换的JS遇到页面卡死的解决方法
2014/03/12 Javascript
Javascript 学习笔记之 对象篇(二) : 原型对象
2014/06/24 Javascript
JavaScript中Function()函数的使用教程
2015/06/04 Javascript
AngularJS递归指令实现Tree View效果示例
2016/11/07 Javascript
详解网站中图片日常使用以及优化手法
2017/01/09 Javascript
实例讲解v-if和v-show的区别
2019/01/31 Javascript
浅谈Vue SSR中的Bundle的具有使用
2019/11/21 Javascript
vue中 v-for循环的用法详解
2020/02/19 Javascript
Vue单页面应用中实现Markdown渲染
2021/02/14 Vue.js
Python可变参数用法实例分析
2017/04/02 Python
python实现员工管理系统
2018/01/11 Python
django+mysql的使用示例
2018/11/23 Python
python 检查文件mime类型的方法
2018/12/08 Python
python中的句柄操作的方法示例
2019/06/20 Python
Keras使用tensorboard显示训练过程的实例
2020/02/15 Python
Python3标准库之threading进程中管理并发操作方法
2020/03/30 Python
浅析Python 抽象工厂模式的优缺点
2020/07/13 Python
matplotlib更改窗口图标的方法示例
2021/02/03 Python
HTML5 Canvas之测试浏览器是否支持Canvas的方法
2015/01/01 HTML / CSS
Dodax奥地利:音乐、电影、书籍、玩具、电子产品等
2019/08/31 全球购物
英国礼品和生活方式品牌:Treat Republic
2020/11/21 全球购物
Prototype如何实现页面局部定时刷新
2013/08/06 面试题
我未来的职业规划范文
2014/01/11 职场文书
年度考核评语
2014/01/19 职场文书
党员转正意见怎么写
2015/06/03 职场文书
战友聚会致辞
2015/07/28 职场文书
成本低的5个创业项目:投资小、赚钱快
2019/08/20 职场文书
jquery插件实现代码雨特效
2021/04/24 jQuery