这篇文章主要知识点是关于Vue、引入第三方模块、Vue、第三方模块、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书
方法一:配置 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 模块太大,会经常出现扩展定义失败导致的报错
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。
以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。
Copyright 2018-2020 www.xz577.com 码农之家
版权投诉 / 书籍推广 / 赞助:520161757@qq.com
深入理解Vuex 模块化(module)
一、为什么需要模块化 前面我们讲到的例子都在一个状态树里进行,当一个项目比较大时,所有的状态都集中在一起会得到一个比较大的对象,进而显得臃肿,难以维护。为了解决这个问题,Vuex允许我们将store分割成模块(module),每个module有自己的state,mutation,action,getter,甚至还可以往下嵌套模块,下面我们看一个典型的模块化例子 const moduleA = { state: {....}, mutations: {....}, actions: {....}, getters: {....}}const moduleB = { state: {....}, mutations: {....}, actions: {....}, getters: {....}}const store = new Vuex.Store({ modules: { a: moduleA, b: moduleB }})store.state.a // moduleA的状态store.state.b // moduleB的状态 二、模块的局部状态 模块内部的mutation和getter,接收的第一参数(state)是模块的局部状态对象,rootState const moduleA = { state: { count: 0}, mutations: { increment (state) { // state是模块的局部状态,也就……
Vue源码学习之初始化模块init.js解析
我们看到了VUE分了很多模块(initMixin()stateMixin()eventsMixin()lifecycleMixin()renderMixin()),通过使用Mixin模式,都是使用了JavaScript原型继承的原理,在Vue的原型上面增加属性和方法。我们继续跟着this._init(options)走,这个一点击进去就知道了是进入了init.js文件是在initMixin函数里面给Vue原型添加的_init方法。首先来从宏观看看这个init文件,可以看出主要是导出了两个函数:initMixin和resolveConstructorOptions,具体作用我们一步步来讨论。咋的一看这个文件,可能有些童鞋会看不明白函数参数括号里面写的是什么鬼,这个其实是应用了flow的类型检查,具体flow的使用这里就不介绍了,有兴趣的请移步:https://flow.org/en/ 我们现在来看第一个函数initMixin,Vue实例在初始化的时候就调用了这个函数, let uid = 0export function initMixin (Vue: ClassComponent) { Vue.prototype._init = function (optio……