guy 3 years ago
parent
commit
7864638989
  1. 71
      dist/fix/fix.compact.ie.js
  2. 71
      dist/fix/fix.compact.js
  3. 22
      src/core/4.widget.js
  4. 4
      src/core/element2Snabbdom.js

71
dist/fix/fix.compact.ie.js vendored

@ -163,77 +163,6 @@
needPop && popTarget(); 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; var unMount = BI.Widget.prototype.__d;
BI.Widget.prototype.__d = function () { BI.Widget.prototype.__d = function () {
unMount.apply(this, arguments); unMount.apply(this, arguments);

71
dist/fix/fix.compact.js vendored

@ -163,77 +163,6 @@
needPop && popTarget(); 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; var unMount = BI.Widget.prototype.__d;
BI.Widget.prototype.__d = function () { BI.Widget.prototype.__d = function () {
try { try {

22
src/core/4.widget.js

@ -38,7 +38,8 @@
extraCls: "", extraCls: "",
cls: "", cls: "",
css: null, css: null,
vdom: false
vdom: false,
}); });
}, },
@ -165,7 +166,7 @@
this.element = BI.Widget._renderEngine.createElement(this); this.element = BI.Widget._renderEngine.createElement(this);
} }
this.element._isWidget = true; 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(); this._initCurrent();
}, },
@ -222,6 +223,7 @@
var div = document.createElement("div"); var div = document.createElement("div");
this.element.append(div); this.element.append(div);
BI.patchVNode(div, this.vnode); BI.patchVNode(div, this.vnode);
// this.element = $(div);
} else { } else {
BI.each(els, function (i, el) { BI.each(els, function (i, el) {
if (el) { if (el) {
@ -240,6 +242,7 @@
}, },
_renderVNode: function () { _renderVNode: function () {
var self = this;
var render = BI.isFunction(this.options.render) ? this.options.render : this.render; var render = BI.isFunction(this.options.render) ? this.options.render : this.render;
var els = render && render.call(this); var els = render && render.call(this);
if (BI.isPlainObject(els)) { if (BI.isPlainObject(els)) {
@ -247,11 +250,13 @@
} }
if (BI.isArray(els)) { if (BI.isArray(els)) {
var container = document.createElement("div"); var container = document.createElement("div");
this._children = {};
BI.each(els, function (i, el) { BI.each(els, function (i, el) {
if (el) { if (el) {
BI._lazyCreateWidget(el, { var w = BI._lazyCreateWidget(el, {
element: container element: container,
}); });
self.addWidget(w);
} }
}); });
} }
@ -316,15 +321,6 @@
callLifeHook(this, "beforeUpdate"); callLifeHook(this, "beforeUpdate");
if (shouldUpdate) { if (shouldUpdate) {
var res = this.update && this.update(nextProps, 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"); callLifeHook(this, "updated");
return res; return res;

4
src/core/element2Snabbdom.js

@ -24,8 +24,8 @@
on: on, on: on,
hook: { hook: {
create: function () { create: function () {
BI.each(parentNode._Widget, function (i, w) { BI.each(parentNode._Widgets, function (i, w) {
w.element = $(vnode.elm); w.element = BI.Widget._renderEngine.createElement(vnode.elm);
}); });
} }
} }

Loading…
Cancel
Save