Tencent / omi

Web Components Framework - Web组件框架
http://omijs.org
Other
13.05k stars 1.24k forks source link

关于omi的两个小疑问? #43

Closed godtail closed 7 years ago

godtail commented 7 years ago
  1. 看源码使用了morphdom.js,但是放在src里面,而没有放到package.json的require里面?这样没法正常更新morphdom.js
  2. 部分兼容代码放在单独的模块会不会好点,现在看起来src/omi.js有点乱,另外有出处就更好了。
    
    ...
    var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } ...



关于第一个问题:我看了下,貌似是对文件进行修改,增加了插槽。
dntzhang commented 7 years ago

1.我给morphdom.js增加了忽略diff功能,所以不能依赖最新的morphdom.js 2.你贴的代码是babel编译出来兼容class的,omi用这种方式兼容es5,不是人写的。

godtail commented 7 years ago

@dntzhang 嗯,第一个问题,我主要维考虑到护两块代码不方便,如果morphdom修复了bug或添加了新功能,只能手动merge上去。 第二个的话,代码是在src/omi.js,并不是dist中的感觉不是编译出来的吧。虽然这几段兼容代码在babel中有看到过。

dntzhang commented 7 years ago
...
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
...

这是class 的 polyfill啊~~ 我手动粘贴进去的