omi 3.0.3

This commit is contained in:
dntzhang 2018-05-13 22:44:46 +08:00
parent 702950a660
commit 07127c7619
13 changed files with 83 additions and 43 deletions

View File

@ -255,8 +255,8 @@ npm i omi
或从 CDN 获取:
* [https://unpkg.com/omi@3.0.2/dist/omi.min.js](https://unpkg.com/omi@3.0.2/dist/omi.min.js)
* [https://unpkg.com/omi@3.0.2/dist/omi.js](https://unpkg.com/omi@3.0.2/dist/omi.js)
* [https://unpkg.com/omi@3.0.3/dist/omi.min.js](https://unpkg.com/omi@3.0.3/dist/omi.min.js)
* [https://unpkg.com/omi@3.0.3/dist/omi.js](https://unpkg.com/omi@3.0.3/dist/omi.js)
## Official Plugins

View File

@ -252,8 +252,8 @@ npm i omi
or get it from CDN:
* [https://unpkg.com/omi@3.0.2/dist/omi.min.js](https://unpkg.com/omi@3.0.2/dist/omi.min.js)
* [https://unpkg.com/omi@3.0.2/dist/omi.js](https://unpkg.com/omi@3.0.2/dist/omi.js)
* [https://unpkg.com/omi@3.0.3/dist/omi.min.js](https://unpkg.com/omi@3.0.3/dist/omi.min.js)
* [https://unpkg.com/omi@3.0.3/dist/omi.js](https://unpkg.com/omi@3.0.3/dist/omi.js)
## Official Plugins

View File

@ -1,3 +1,10 @@
# omi 3.0.3
* SSR
* fix render args
Remove the _dirty prop of component for ssr and free updating.
# omi 3.0.2
Remove the _dirty prop of component for ssr and free updating.

20
dist/omi.dev.js vendored
View File

@ -1,5 +1,5 @@
/**
* omi v3.0.2 http://omijs.org
* omi v3.0.3 http://omijs.org
* Omi === Preact + Scoped CSS + Store System + Native Support in 3kb javascript.
* By dntzhang https://github.com/dntzhang
* Github: https://github.com/AlloyTeam/omi
@ -1388,15 +1388,25 @@
* const Thing = ({ name }) => <span>{ name }</span>;
* render(<Thing name="one" />, document.querySelector('#foo'));
*/
function render(vnode, parent, merge) {
function render(vnode, parent, merge, ssrRoot) {
var m = isElement(merge) || merge === undefined;
if (typeof window === 'undefined') {
if (vnode instanceof Component && !m) {
vnode.$store = merge;
}
return;
}
options.staticStyleRendered = false;
parent = typeof parent === 'string' ? document.querySelector(parent) : parent;
if (ssrRoot) {
ssrRoot = document.querySelector(ssrRoot);
}
if (merge === true) {
while (parent.firstChild) {
parent.removeChild(parent.firstChild);
}
}
var m = isElement(merge) || merge === undefined;
if (vnode instanceof Component) {
if (window && window.Omi) {
window.Omi.instances.push(vnode);
@ -1406,7 +1416,7 @@
}
if (vnode.componentWillMount) vnode.componentWillMount();
if (vnode.install) vnode.install();
var rendered = vnode.render();
var rendered = vnode.render(vnode.props, vnode.state, vnode.context);
if (vnode.style) {
addScopedAttr(rendered, vnode.style(), '_style_' + vnode._id, vnode);
}
@ -1416,7 +1426,7 @@
addScopedAttrStatic(rendered, vnode.staticStyle(), '_style_' + vnode.constructor.name, !vnode.base);
}
vnode.base = diff(m ? merge : undefined, rendered, {}, false, parent, false);
vnode.base = diff(m ? merge : ssrRoot, rendered, {}, false, parent, false);
if (vnode.componentDidMount) vnode.componentDidMount();
if (vnode.installed) vnode.installed();

2
dist/omi.dev.js.map vendored

File diff suppressed because one or more lines are too long

20
dist/omi.esm.js vendored
View File

@ -1,5 +1,5 @@
/**
* omi v3.0.2 http://omijs.org
* omi v3.0.3 http://omijs.org
* Omi === Preact + Scoped CSS + Store System + Native Support in 3kb javascript.
* By dntzhang https://github.com/dntzhang
* Github: https://github.com/AlloyTeam/omi
@ -1385,15 +1385,25 @@ function isElement(obj) {
* const Thing = ({ name }) => <span>{ name }</span>;
* render(<Thing name="one" />, document.querySelector('#foo'));
*/
function render(vnode, parent, merge) {
function render(vnode, parent, merge, ssrRoot) {
var m = isElement(merge) || merge === undefined;
if (typeof window === 'undefined') {
if (vnode instanceof Component && !m) {
vnode.$store = merge;
}
return;
}
options.staticStyleRendered = false;
parent = typeof parent === 'string' ? document.querySelector(parent) : parent;
if (ssrRoot) {
ssrRoot = document.querySelector(ssrRoot);
}
if (merge === true) {
while (parent.firstChild) {
parent.removeChild(parent.firstChild);
}
}
var m = isElement(merge) || merge === undefined;
if (vnode instanceof Component) {
if (window && window.Omi) {
window.Omi.instances.push(vnode);
@ -1403,7 +1413,7 @@ function render(vnode, parent, merge) {
}
if (vnode.componentWillMount) vnode.componentWillMount();
if (vnode.install) vnode.install();
var rendered = vnode.render();
var rendered = vnode.render(vnode.props, vnode.state, vnode.context);
if (vnode.style) {
addScopedAttr(rendered, vnode.style(), '_style_' + vnode._id, vnode);
}
@ -1413,7 +1423,7 @@ function render(vnode, parent, merge) {
addScopedAttrStatic(rendered, vnode.staticStyle(), '_style_' + vnode.constructor.name, !vnode.base);
}
vnode.base = diff(m ? merge : undefined, rendered, {}, false, parent, false);
vnode.base = diff(m ? merge : ssrRoot, rendered, {}, false, parent, false);
if (vnode.componentDidMount) vnode.componentDidMount();
if (vnode.installed) vnode.installed();

2
dist/omi.esm.js.map vendored

File diff suppressed because one or more lines are too long

43
dist/omi.js vendored
View File

@ -490,28 +490,31 @@
return "object" == typeof obj && 1 === obj.nodeType && "object" == typeof obj.style && "object" == typeof obj.ownerDocument;
}
}
function render(vnode, parent, merge) {
options.staticStyleRendered = !1;
parent = 'string' == typeof parent ? document.querySelector(parent) : parent;
if (!0 === merge) while (parent.firstChild) parent.removeChild(parent.firstChild);
function render(vnode, parent, merge, ssrRoot) {
var m = isElement(merge) || void 0 === merge;
if (vnode instanceof Component) {
if (window && window.Omi) window.Omi.instances.push(vnode);
if (!m) vnode.$store = options.$store = merge;
if (vnode.componentWillMount) vnode.componentWillMount();
if (vnode.install) vnode.install();
var rendered = vnode.render();
if (vnode.style) addScopedAttr(rendered, vnode.style(), '_style_' + vnode.s, vnode);
if (vnode.staticStyle) addScopedAttrStatic(rendered, vnode.staticStyle(), '_style_' + vnode.constructor.name, !vnode.base);
vnode.base = diff(m ? merge : void 0, rendered, {}, !1, parent, !1);
if (vnode.componentDidMount) vnode.componentDidMount();
if (vnode.installed) vnode.installed();
if ('undefined' != typeof window) {
options.staticStyleRendered = !1;
parent = 'string' == typeof parent ? document.querySelector(parent) : parent;
if (ssrRoot) ssrRoot = document.querySelector(ssrRoot);
if (!0 === merge) while (parent.firstChild) parent.removeChild(parent.firstChild);
if (vnode instanceof Component) {
if (window && window.Omi) window.Omi.instances.push(vnode);
if (!m) vnode.$store = options.$store = merge;
if (vnode.componentWillMount) vnode.componentWillMount();
if (vnode.install) vnode.install();
var rendered = vnode.render(vnode.props, vnode.state, vnode.context);
if (vnode.style) addScopedAttr(rendered, vnode.style(), '_style_' + vnode.s, vnode);
if (vnode.staticStyle) addScopedAttrStatic(rendered, vnode.staticStyle(), '_style_' + vnode.constructor.name, !vnode.base);
vnode.base = diff(m ? merge : ssrRoot, rendered, {}, !1, parent, !1);
if (vnode.componentDidMount) vnode.componentDidMount();
if (vnode.installed) vnode.installed();
options.staticStyleRendered = !0;
return vnode.base;
}
var result = diff(merge, vnode, {}, !1, parent, !1);
options.staticStyleRendered = !0;
return vnode.base;
}
var result = diff(merge, vnode, {}, !1, parent, !1);
options.staticStyleRendered = !0;
return result;
return result;
} else if (vnode instanceof Component && !m) vnode.$store = merge;
}
var options = {
scopedStyle: !0,

2
dist/omi.js.map vendored

File diff suppressed because one or more lines are too long

2
dist/omi.min.js vendored

File diff suppressed because one or more lines are too long

2
dist/omi.min.js.map vendored

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,6 @@
{
"name": "omi",
"version": "3.0.2",
"version": "3.0.3",
"description": "Omi === Preact + Scoped CSS + Store System + Native Support in 3kb javascript.",
"main": "dist/omi.js",
"jsnext:main": "dist/omi.esm.js",

View File

@ -33,15 +33,25 @@ function isElement(obj) {
* const Thing = ({ name }) => <span>{ name }</span>;
* render(<Thing name="one" />, document.querySelector('#foo'));
*/
export function render(vnode, parent, merge) {
export function render(vnode, parent, merge, ssrRoot) {
const m = isElement(merge) || merge === undefined;
if (typeof window === 'undefined') {
if (vnode instanceof Component&&!m){
vnode.$store = merge;
}
return;
}
options.staticStyleRendered = false;
parent = typeof parent === 'string' ? document.querySelector(parent) : parent;
if (ssrRoot){
ssrRoot = document.querySelector(ssrRoot);
}
if (merge === true){
while (parent.firstChild){
parent.removeChild(parent.firstChild);
}
}
const m = isElement(merge) || merge === undefined;
if (vnode instanceof Component) {
if (window && window.Omi){
window.Omi.instances.push(vnode);
@ -61,7 +71,7 @@ export function render(vnode, parent, merge) {
addScopedAttrStatic(rendered,vnode.staticStyle(),'_style_'+vnode.constructor.name, !vnode.base);
}
vnode.base = diff(m ? merge : undefined, rendered, {}, false, parent, false);
vnode.base = diff(m ? merge : ssrRoot, rendered, {}, false, parent, false);
if (vnode.componentDidMount) vnode.componentDidMount();
if (vnode.installed) vnode.installed();