Vue 插件开发

Vue 插件开发

官方文档

传送门

// Vue.js 的插件应该有一个公开方法 install。这个方法的第一个参数是 Vue 构造器,第二个参数是一个可选的选项对象:


MyPlugin.install = function (Vue, options) {
  // 1. 添加全局方法或属性
  Vue.myGlobalMethod = function () {
    // 逻辑...
  }

  // 2. 添加全局资源
  Vue.directive('my-directive', {
    bind (el, binding, vnode, oldVnode) {
      // 逻辑...
    }
    ...
  })

  // 3. 注入组件
  Vue.mixin({
    created: function () {
      // 逻辑...
    }
    ...
  })

  // 4. 添加实例方法
  Vue.prototype.$myMethod = function (methodOptions) {
    // 逻辑...
  }
}
alert插件开发
  1. 先写个alert组件
<template>
    <div class="ComAlert">
        <div class="content" v-for="(item, index) in content" :key="index">{{item}}</div>
    </div>
</template>

<script>
    export default {
        name: 'ComAlert',
        data () {
            return {
                content: [],
                timer: []
            }
        },
        created () {
        },
        methods: {
            push (text) {
                const s = 2000
                this.content.unshift(text)
                const timer = setTimeout(() => {
                    this.content.pop()
                }, s)

                this.timer.push(timer)

            }
        }
    }
</script>


<style scoped lang="less" rel="stylesheet/less">
    @import "./Alert.less";
</style>
  1. 再写个 alert.js
import ComAlert from './Alert.vue'

const alert = {
    install (Vue, option) {
        const Alert = Vue.extend(ComAlert)
        let $vm = new Alert({
            el: document.createElement('div')
        });
        document.body.appendChild($vm.$el);

        Vue.prototype.$_alert = (alertText = '') => {
            return $vm.push(alertText)
        }
    }
}

export default alert
  1. mian.js
import Alert from './components/Alert/Alert'

Vue.use(Alert)
  1. 调用
this.$_alert('提示内容')
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Vue 插件开发 官方文档 传送门 alert插件开发 先写个alert组件 再写个 alert.js mian....
    An_0313阅读 294评论 0 0
  • Vue插件开发初体验——(懒加载) 前言 闲来无事,想自己开发一个简单的Vue懒加载插件,能力的提升我觉得是可以通...
    唐益达阅读 1,756评论 0 5
  • 写在前面 本次演示的是开发一个 vue手机虚拟支付键盘插件主要讲解的是如何快速开发一个vue插件并发布到npm上 ...
    宇cccc阅读 14,846评论 20 48
  • 本文首发于掘金专栏,发布于我的独立博客、简书,转载请保留原文链接。 通常在开发一个项目的时候,会用到类似弹出框、提...
    悟空leo阅读 693评论 0 2
  • Vue插件的编写方法一般有下面几种: 添加全局方法或者属性,如: vue-custom-element 添加全局资...
    _____西班木有蛀牙阅读 295评论 1 0