//styleslightly前言在开发Vue项目的过程中,经常会用到插件,比如原生插件vue-router、vuex,以及element-ui提供的notify、message等。这些插件让我们的开发更加简单高效。那么Vue插件是如何开发的呢?如何自己开发一个vue插件然后打包发布到npm?本文涉及的技术点:Vue插件本质Vue.extend()全局方法如何手动挂载Vue实例Vue.use()原理如何打包成umd格式如何在发布前测试npm包1.定义什么是Vue插件,它和Vue组件有什么区别?看看官网的解释:“插件通常??用于为Vue添加全局功能”。“组件是具有名称的可重用Vue实例。”-Emmmm,Vue.js官网,似乎有一种朦胧的美。..我试着解释一下,其实Vue插件和Vue组件只是封装在Vue.js中的两个概念。无论是插件还是组件,最终目的都是为了实现逻辑复用。它们的本质都是对代码逻辑的封装,只是封装方式不同而已。必要的时候,也可以将组件封装成插件,插件也可以改写成组件,就看用哪个封装更方便了。另外,插件是全局的,组件可以全局注册,也可以本地注册。我们今天只关注Vue插件。插件一般有以下几种:添加全局方法或属性。如:vue-custom-element添加全局资源:directives/filters/transitions等。比如vue-touch通过全局混合添加一些组件选项。例如,vue-router通过将它们添加到Vue.prototype来添加Vue实例方法。在提供上述一种或多种特性的同时提供自己的API的库。如vue-router——Vue.js官网2.插件的使用插件需要通过Vue.use()方法注册到全局,需要在调用newVue()之前完成启动应用程序。那么在其他Vue实例中,就可以通过this.$xxx来调用插件中提供的API了。下面以实现一个简单的提示框插件toast为例,一步步介绍如何开发和发布一个Vue插件。想要的效果:useinmain.js://src/main.jsimportVuefrom'vue'importtoastfrom'@champyin/toast'Vue.use(toast)在App.vue生命周期的mounted方法中被调用this.$toast()://src/App.vue运行后,点击页面上的按钮,弹出成功通知,然后在3秒后消失。在线体验地址:http://champyin.com/toast/三、插件开发1、编写toast的本体。在Vue项目的src目录下创建components/Toast/index.vue文件(可以使用Vue-cli快速生成Vue项目,也可以自己用webpack搭建)。//src/components/Toast/index.vue跨度>{{msg}}