美文网首页
简单写一个vue插件

简单写一个vue插件

作者: 小强不是蟑螂啊 | 来源:发表于2019-03-28 11:53 被阅读0次

在vue中使用插件的源码如下:

如果我们使用插件可以在插件内部定义install方法或者export的就是个函数,看了vuex和vue-route的源码都是使用install方法,所以我在这里就用通常的install方法去实现

 function initUse (Vue) {
      Vue.use = function (plugin) {
        var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));
        if (installedPlugins.indexOf(plugin) > -1) {
          return this
        } 
        // additional parameters
        var args = toArray(arguments, 1);
        args.unshift(this);
        if (typeof plugin.install === 'function') {
          plugin.install.apply(plugin, args);
        } else if (typeof plugin === 'function') {
          plugin.apply(null, args);
        }
        installedPlugins.push(plugin);
        return this
      };
    }
第一步 使用 vue init webpack vue-plugin 搭建vue脚手架项目
第二步,创建完项目,在src目录创建plugin.js,代码如下,在install方法里定义了一个全局方法,一个实例方法:
var myPlugin = Object.create(null);
myPlugin.install = function (Vue, options) {
    // 1. 添加全局方法或属性
    Vue.myGlobalMethod = function () {
       console.log('我是全局方法')
    }

    // 2. 添加实例方法
    Vue.prototype.$myMethod = function (methodOptions) {
      console.log('我是实例方法')
    }
  }

export default myPlugin

第三步 在main.js引入,调用myGlobalMethod全局方法

import Vue from 'vue'
import App from './App'
import router from './router'
import myPlugin from './plugin'
Vue.config.productionTip = false
Vue.use(myPlugin)
Vue.myGlobalMethod()
/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  components: { App },
  template: '<App/>'
})
第四步 在HelloWorld.vue文件created里调用$myMethod()实例方法
export default {
  name: 'HelloWorld',
  data () {
    return {
      msg: 'Welcome to Your Vue.js App'
    }
  },
  created(){
    this.$myMethod();
  }
}
第五步 运行项目,查看结果,两个方法都运行成功,简单的插件已经完成了
image.png

相关文章

  • 简单写一个vue插件

    在vue中使用插件的源码如下: 如果我们使用插件可以在插件内部定义install方法或者export的就是个函数,...

  • vue高级用法

    Vue 插件 plugin 1, Vue 插件 plugin 安装 Vue.js 插件。如果插件是一个对象,必须提...

  • vue-resource在vuejs中的作用

    最近写的项目中用到了vue的插件:vue-resource。下面是我使用这个插件的一些经验,算是给自己写的一个笔记...

  • 使用 Jest 进行 Vue 单元测试

    vue-cli3 的插件使安装流程变得格外简单,通过 vue ui 启动可视化管理系统,在插件栏,点击 ‘添加插件...

  • vue.use和vue.prototype的区别

    不是为了vue写的插件(插件内要处理)不支持Vue.use()加载方式 非vue官方库不支持new Vue()方式...

  • Vue插件开发初体验——(懒加载)

    Vue插件开发初体验——(懒加载) 前言 闲来无事,想自己开发一个简单的Vue懒加载插件,能力的提升我觉得是可以通...

  • Vue插件(一)添加全局方法或全局属性

    前言 Vue中添加插件最简单的方式,就是直接给Vue添加一个全局的静态方法或变量; 一个Vue项目中,Vue是唯一...

  • VUE纯前端导出excel表格功能

    插件:使用vue-json-excel插件实现Vue纯前端导出简单的Excel表格功能。 使用方法 1. 安装依赖...

  • vue:use和prototype区别

    1、不是为了vue写的插件(插件内要处理)不支持Vue.use()加载方式 2、非vue官方库不支持new Vue...

  • vue全局插件——layer弹框

    写VUE插件,需要看下VUE的插件部分的api需求:完成确定取消事件,默认没有取消事件即单纯为一个layer提示框...

网友评论

      本文标题:简单写一个vue插件

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