javascript - 求解读element-ui源码(vue2.0)
PHP中文网
PHP中文网 2017-04-10 17:36:38
[JavaScript讨论组]

主要看main.js,然后解答下我注释里的疑问!谢谢!

先说用法:

test.vue



源码:

message/src/main.js

import Vue from 'vue'
let MessageConstructor = Vue.extend(require('./main.vue'));
let instance;
let instances = [];
let seed = 1;
let Message = function(options) {
  options = options || {};
  if(typeof options === 'string'){
    options = {
      message: options
    };
  }
  let userOnClose = options.onClose;//3.options并没有这个属性啊
  let id = 'message_' + seed++;

  options.onClose = function(){//4.这个如果放到3前面就好解释了,为什么在3后面呢?
    Message.close(id, userOnClose);//5.为什么又把userOnClose传进去了?不就是等于传自己进去吗?
  };
  instance = new MessageConstructor({
    data: options
  });
  instance.id = id;
  instance.vm = instance.$mount();
  instance.vm.visible = true;
  instance.dom = instance.vm.$el;
  instances.push(instance);
};

['succes', 'warning', 'info', 'error'].forEach(type => {
  Message[type] = options => {//6.Message在上文是函数啊,Message哪里跑出来的type属性?
    if(typeof options === 'string'){
      options = {
        message: options
      };
      options.type= type;
      return Message(options);
    };
  }
});

Message.close = function(id, userOnClose){//7.不是很懂这段代码的意思,作用是什么?
  for (let i = 0, len = instances.length; i < len; i++) {
    if (id === instances[i].id) {
      if (typeof userOnClose === 'function') {
        userOnClose(instances[i]);
      }
      instances.splice(i, 1);
      break;
    }
  }
}

export default Message;

message/src/main.vue






message/index.js

module.exports = require('./src/main.js') 
PHP中文网
PHP中文网

认证0级讲师

全部回复(1)
大家讲道理

谢邀,我还没有看过。。。
我给一个猜测吧,应该是什么去抖节流的方法

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号