From 786463898993448ae43f7a9c1fa2d13ad918f867 Mon Sep 17 00:00:00 2001 From: guy Date: Thu, 8 Jul 2021 20:56:14 +0800 Subject: [PATCH] add --- dist/fix/fix.compact.ie.js | 71 ------------------------------------ dist/fix/fix.compact.js | 71 ------------------------------------ src/core/4.widget.js | 22 +++++------ src/core/element2Snabbdom.js | 4 +- 4 files changed, 11 insertions(+), 157 deletions(-) diff --git a/dist/fix/fix.compact.ie.js b/dist/fix/fix.compact.ie.js index bdc8af155..152f94f89 100644 --- a/dist/fix/fix.compact.ie.js +++ b/dist/fix/fix.compact.ie.js @@ -163,77 +163,6 @@ needPop && popTarget(); }; - // BI.Widget.prototype._initElement = function () { - // var self = this; - // var render = BI.isFunction(this.options.render) ? this.options.render : this.render; - // var els; - // if (this.options.updateMode === "auto" && this._store) { - // // 自动更新模式 - // var childComponents = {}; - // var rendered = false; - // this._watchers.push(Fix.watch(this.model, function () { - // if (rendered) { - // var newEls = render && render.call(this); - // BI.each(childComponents, function (i, childComponent) { - // if (childComponent.component instanceof BI.Layout) { - // return; // 布局的过滤掉 - // } - // var nextProps = BI.get([newEls], childComponent.path); - // if (nextProps) { - // var shouldUpdate = childComponent.component.shouldUpdate && childComponent.component.shouldUpdate(nextProps); - // childComponent.component._update(nextProps, shouldUpdate); - // childComponent.props = BI.extend(childComponent.props, nextProps); - // } - // }); - // } else { - // els = render && render.call(this); - // - // function traverse (parent, path) { - // BI.each(parent, function (i, child) { - // var childPath = path.concat(i); - // if (BI.isArray(child)) { - // traverse(child, childPath); - // } else if (BI.isPlainObject(child)) { - // if (child.type) { - // child.__ref = function (_ref) { - // if (_ref) { - // var comp = childComponents[this.getName()] = {}; - // comp.component = _ref; - // comp.props = child; - // comp.path = childPath; - // } else { - // delete childComponents[this.getName()]; - // } - // }; - // } - // traverse(child, childPath); - // } - // }); - // } - // - // traverse([els], []); - // rendered = true; - // } - // })); - // } else { - // els = render && render.call(this); - // } - // if (BI.isPlainObject(els)) { - // els = [els]; - // } - // if (BI.isArray(els)) { - // BI.each(els, function (i, el) { - // if (el) { - // BI._lazyCreateWidget(el, { - // element: self - // }); - // } - // }); - // } - // // if (this._isRoot === true || !(this instanceof BI.Layout)) { - // this._mount(); - // }; - var unMount = BI.Widget.prototype.__d; BI.Widget.prototype.__d = function () { unMount.apply(this, arguments); diff --git a/dist/fix/fix.compact.js b/dist/fix/fix.compact.js index bb894d6f9..1fa5e2972 100644 --- a/dist/fix/fix.compact.js +++ b/dist/fix/fix.compact.js @@ -163,77 +163,6 @@ needPop && popTarget(); }; - // BI.Widget.prototype._initElement = function () { - // var self = this; - // var render = BI.isFunction(this.options.render) ? this.options.render : this.render; - // var els; - // if (this.options.updateMode === "auto" && this._store) { - // // 自动更新模式 - // var childComponents = {}; - // var rendered = false; - // this._watchers.push(Fix.watch(this.model, function () { - // if (rendered) { - // var newEls = render && render.call(this); - // BI.each(childComponents, function (i, childComponent) { - // if (childComponent.component instanceof BI.Layout) { - // return; // 布局的过滤掉 - // } - // var nextProps = BI.get([newEls], childComponent.path); - // if (nextProps) { - // var shouldUpdate = childComponent.component.shouldUpdate && childComponent.component.shouldUpdate(nextProps); - // childComponent.component._update(nextProps, shouldUpdate); - // childComponent.props = BI.extend(childComponent.props, nextProps); - // } - // }); - // } else { - // els = render && render.call(this); - // - // function traverse (parent, path) { - // BI.each(parent, function (i, child) { - // var childPath = path.concat(i); - // if (BI.isArray(child)) { - // traverse(child, childPath); - // } else if (BI.isPlainObject(child)) { - // if (child.type) { - // child.__ref = function (_ref) { - // if (_ref) { - // var comp = childComponents[this.getName()] = {}; - // comp.component = _ref; - // comp.props = child; - // comp.path = childPath; - // } else { - // delete childComponents[this.getName()]; - // } - // }; - // } - // traverse(child, childPath); - // } - // }); - // } - // - // traverse([els], []); - // rendered = true; - // } - // })); - // } else { - // els = render && render.call(this); - // } - // if (BI.isPlainObject(els)) { - // els = [els]; - // } - // if (BI.isArray(els)) { - // BI.each(els, function (i, el) { - // if (el) { - // BI._lazyCreateWidget(el, { - // element: self - // }); - // } - // }); - // } - // // if (this._isRoot === true || !(this instanceof BI.Layout)) { - // this._mount(); - // }; - var unMount = BI.Widget.prototype.__d; BI.Widget.prototype.__d = function () { try { diff --git a/src/core/4.widget.js b/src/core/4.widget.js index 84ff65d99..e3ea3a012 100644 --- a/src/core/4.widget.js +++ b/src/core/4.widget.js @@ -38,7 +38,8 @@ extraCls: "", cls: "", css: null, - vdom: false + + vdom: false, }); }, @@ -165,7 +166,7 @@ this.element = BI.Widget._renderEngine.createElement(this); } this.element._isWidget = true; - (this.element[0]._Widget = this.element[0]._Widget || []).push(this); + (this.element[0]._Widgets = this.element[0]._Widgets || []).push(this); this._initCurrent(); }, @@ -222,6 +223,7 @@ var div = document.createElement("div"); this.element.append(div); BI.patchVNode(div, this.vnode); + // this.element = $(div); } else { BI.each(els, function (i, el) { if (el) { @@ -240,6 +242,7 @@ }, _renderVNode: function () { + var self = this; var render = BI.isFunction(this.options.render) ? this.options.render : this.render; var els = render && render.call(this); if (BI.isPlainObject(els)) { @@ -247,11 +250,13 @@ } if (BI.isArray(els)) { var container = document.createElement("div"); + this._children = {}; BI.each(els, function (i, el) { if (el) { - BI._lazyCreateWidget(el, { - element: container + var w = BI._lazyCreateWidget(el, { + element: container, }); + self.addWidget(w); } }); } @@ -316,15 +321,6 @@ callLifeHook(this, "beforeUpdate"); if (shouldUpdate) { var res = this.update && this.update(nextProps, shouldUpdate); - } else if (BI.isNull(shouldUpdate)) { - // 默认使用shallowCompare的方式进行更新 - var nextChange = {}; - BI.each(nextProps, function (key, value) { - if (o[key] !== value) { - nextChange[key] = value; - } - }); - var res = this.update && BI.isNotEmptyObject(nextChange) && this.update(nextChange); } callLifeHook(this, "updated"); return res; diff --git a/src/core/element2Snabbdom.js b/src/core/element2Snabbdom.js index cb8d347bb..90af92cdc 100644 --- a/src/core/element2Snabbdom.js +++ b/src/core/element2Snabbdom.js @@ -24,8 +24,8 @@ on: on, hook: { create: function () { - BI.each(parentNode._Widget, function (i, w) { - w.element = $(vnode.elm); + BI.each(parentNode._Widgets, function (i, w) { + w.element = BI.Widget._renderEngine.createElement(vnode.elm); }); } }