打算封装一套控件库来满足后台系统开发。
比如调用封装的GoLayOut控件,
import {GoLayout} from '../../components/goingComponent'
其实这里访问的是:
/components/goingComponent/index.js
大概内容如下:
var _goLayout = require('./goLayout');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
Object.defineProperty(exports, 'GoLayout', {
enumerable: true,
get: function get() {
return _interopRequireDefault(_goLayout)['default'];
}
});
通过扩展export属性的方式来进行控件导出,可以理解这里是控件注册区域。
将属性添加到对象,或修改现有属性的特性。
**Object.defineProperty(object, propertyname, descriptor)**
参数
object
必需。 要在其上添加或修改属性的对象。 这可能是一个本机 JavaScript 对象(即用户定义的对象或内置对象)或 DOM 对象。
propertyname
必需。 一个包含属性名称的字符串。
descriptor
必需。 属性描述符。 它可以针对数据属性或访问器属性。
//这里才真正导入的控件
var _goLayout = require('./goLayout');
控件的文件机构如图:
其实控件封装代码需要写在goLayout.js文件中。