美文网首页
组件与插件的区别

组件与插件的区别

作者: 懿小诺 | 来源:发表于2020-02-12 16:48 被阅读0次

Vue组件(component)用来构成你的App的业务模块,它的目标是App.vue。

Vue插件(plugin) 用来增强你的技术栈的功能模块, 它的目标是Vue本身。(插件是对Vue的功能的增强和补充)

vue组件

我们通常在src的目录下,新建一个component文件夹来存放公共的组件,在我们要使用组件的页面中引入组件,并且进行一个说明。组件个调用它的页面之间的通信,就是父组件和子组件的通信方式。

import Rule from '../../components/Rule.vue'
export default {
  components: {
    Rule,
  },
   data () {
    return {
    }
   }
}

Vue插件

vue插件的编写方法的四类:

export default {
    install(Vue, options) {
        Vue.myGlobalMethod = function () {  // 1. 添加全局方法或属性,如:  vue-custom-element
            // 逻辑...
        }
 
        Vue.directive('my-directive', {  // 2. 添加全局资源:指令/过滤器/过渡等,如 vue-touch
            bind (el, binding, vnode, oldVnode) {
                // 逻辑...
            }
            ...
        })
    
        Vue.mixin({
            created: function () {  // 3. 通过全局 mixin方法添加一些组件选项,如: vuex
                // 逻辑...
            }
            ...
        })    
    
        Vue.prototype.$myMethod = function (options) {  // 4. 添加实例方法,通过把它们添加到 Vue.prototype 上实现
            // 逻辑...
        }
    }
}

这里想具体介绍一个信息提示框的插件的编写及使用过程,其他的插件举一反三即可,无非就是逻辑更加复杂。
1.我们在src/componnets的文件夹中,建立一个 toast.vue

<template>
    <div v-show="show" class="container">
        <div class="mask"></div>
        <div class="dialog">
            <div class="head">{{head}}</div>
            <div class="msg">{{msg}}</div>
            <div class="btn">
                <a class="btn_default" @click="cancel">取消</a>
                <a class="btn_main" @click="confirm">确认</a>
            </div>
        </div>
    </div>
</template>
<script>
export default {
    data () {
        return {
            show: false,
            msg: '',
            head: '',
            callback: ''
        }
    },
    methods: {
        cancel () {
            this.show = false;
        },
        confirm () {
            this.callback();
        }
    }
}
</script>

2.在src/plugins 中创建一个 toast.js

/*eslint-disable*/
import ToastComponent from '@/components/Toast.vue'
// let $vm
export default {
    install (_Vue, options) {
        const ToastConstructor = _Vue.extend(ToastComponent) 
        const instance = new ToastConstructor()   //创建alert子实例
        instance.$mount(document.createElement('div')) //挂载实例到我们创建的DOM上
        document.body.appendChild(instance.$el)
        _Vue.prototype.$showToast = (head, msg, callback) => {
            instance.head = head;
            instance.msg = msg;
            instance.show = true;
            instance.callback = callback
        }
    }
}

3.在main.js 中使用插件

import ToastPlugin from './plugins/toast.js'
Vue.use(ToastPlugin)

4.这样我们就可以在全局使用了。

this.$showToast ('弹窗标题', '这里显示提示的内容')

相关文章

  • Android:插件化

    插件化组件化 组件化与插件化的区别 组件化是Android自然提供的,例如分成lib,test组件。插件化是热更新...

  • 组件与插件的区别

    Vue组件(component)用来构成你的App的业务模块,它的目标是App.vue。 Vue插件(plugin...

  • Android插件化

    插件化与组件化的区别 插件化:插件化是把整个APP拆分成多个模块,这些模块有一个宿主和多个插件,每个模块都是...

  • 插件化方式(插桩式)

    组件化与插件化的区别: 组件化开发就是将一个app分成多个模块,每个模块都是一个组件(Module),开发的过程中...

  • Android插件化(一)

    插件化(一) 组件化和插件化的区别: 组件化是将一个app分成多个模块,每个模块都是一个组件(module),开发...

  • vue插件的制作----基于Vue和PHP打造前后端分离的通用管

    要使用Vue,基础要会Vue组件,其实Vue还支持看起来技术含量更高的插件。组件和插件的区别,因人而异。不过组件的...

  • vue学点笔记一

    一、vue组件和插件的区别 vue组件组件 (Component) 是用来构成你的 App 的业务模块,它的目标是...

  • Vue.use注册插件

    在搞清楚如何用Vue.use注册插件之前,首先需要理清楚一个问题,就是插件和组件的区别。组件比较简单,比如弹框组件...

  • 组件、插件、控件的区别

    摘抄自:http://blog.csdn.net/haiross/article/details/22662635...

  • Android插件化RePlugin探索

    插件化与组件化的区别 组件化,也称模块化,主要通过拆分单独功能模块及通用模块来实现较大应用的松耦合。把需要独立拆分...

网友评论

      本文标题:组件与插件的区别

      本文链接:https://www.haomeiwen.com/subject/bxecfhtx.html