基本语法

import export

import React, { Component } from 'react';

表示React是default导出的,Component是命名导出的。

如何导出类

单文件导出1

// Module.js
class ModuleA {}
class ModuleB {}
export default ModuleA;
export { ModuleB };
// demo.js
import ModuleA, { ModuleB } from './Module';

单文件导出2

// Module.js
class ModuleA {}
class ModuleB {}
class Module {}
Module.A = ModuleA;
Module.B = ModuleB;
export default Module;
// demo.js
import Module from './Module';
const {A, B} = Module;

多文件导出1

// CoreModule.js
export { default as EventManager } from './EventManager';
export { default as AccountManager } from './AccountManager';
// demo.js
import { EventManager, AccountManager } from './CoreModule';

多文件导出2

// CoreModule.js
import AccountManager from './AccountManager';
import EventManager from './EventManager';
export { EventManager, AccountManager }
// demo.js
import { EventManager, AccountManager } from './CoreModule';

单例

import EventEmitter from 'EventEmitter';
class EventManager {
    static sInstance = null;
    constructor() {
        this._eventEmitter = new EventEmitter();
    }

    addListener(eventName, callback) {
        if (typeof callback !== 'function') {
            throw new TypeError('listener argument must be a function');
        }
        this._eventEmitter.addListener(eventName, callback);
    }

    removeListener(eventName, callback) {
        if (typeof callback !== 'function') {
            throw new TypeError('listener argument must be a function');
        }
        this._eventEmitter.removeListener(eventName, callback);
    }

    removeAllListeners() {
        this._eventEmitter.removeAllListeners();
    }

    triggerEvent(eventName, ...args) {
        this._eventEmitter.emit(eventName, args);
    }

    static getInstance() {
        if (!EventManager.sInstance) {
            EventManager.sInstance = new EventManager();
        }
        return EventManager.sInstance;
    }
}
EventManager.EventAccount = "account";
export default EventManager;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,088评论 19 139
  • 郑恩地 下面我们先看一段代码,然后通过代码我来介绍下基本的语法(我尽量都使用ES6的语法): ReactNativ...
    因幡白兔阅读 3,641评论 2 8
  • Clojure - 基本语法 - fxjwind - 博客园http://www.cnblogs.com/fxjw...
    葡萄喃喃呓语阅读 7,057评论 0 0
  • 18. 高高的脚手架 1973年12月,我来到沈阳煤矿报到,被分配到了沈阳煤矿大修队,这是一个专门修建矿区...
    沙沙_wk阅读 3,401评论 0 0
  • 有一天跟女儿聊天 她问我:妈妈,等我上小学了是不是要天天写字? 我说:是啊! 女儿说:我不要上小学了,我不会写字。...
    二姐说育儿先育己阅读 3,582评论 0 0

友情链接更多精彩内容