pull/1232/merge
Rich Harris 8 years ago committed by GitHub
commit bcace2113f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -166,7 +166,7 @@ export default function dom(
? `@proto` ? `@proto`
: deindent` : deindent`
{ {
${['destroy', 'get', 'fire', 'observe', 'on', 'set', 'teardown', '_set', '_mount', '_unmount', '_differs'] ${['destroy', 'get', 'fire', 'observe', 'on', 'set', 'teardown', '_set', '_mount', '_unmount', '_differs', '_flush']
.map(n => `${n}: @${n === 'teardown' ? 'destroy' : n}`) .map(n => `${n}: @${n === 'teardown' ? 'destroy' : n}`)
.join(',\n')} .join(',\n')}
}`; }`;
@ -278,11 +278,7 @@ export default function dom(
this._mount(options.target, options.anchor); this._mount(options.target, options.anchor);
${(generator.hasComponents || generator.hasComplexBindings || templateProperties.oncreate || generator.hasIntroTransitions) && deindent` ${(generator.hasComponents || generator.hasComplexBindings || templateProperties.oncreate || generator.hasIntroTransitions) && deindent`
${generator.hasComponents && `this._lock = true;`} this._flush();
${(generator.hasComponents || generator.hasComplexBindings) && `@callAll(this._beforecreate);`}
${(generator.hasComponents || templateProperties.oncreate) && `@callAll(this._oncreate);`}
${(generator.hasComponents || generator.hasIntroTransitions) && `@callAll(this._aftercreate);`}
${generator.hasComponents && `this._lock = false;`}
`} `}
} }
`} `}

@ -210,7 +210,7 @@ export default class Component extends Node {
); );
builder.addConditional( builder.addConditional(
`!${name_updating}.${binding.name} && changed.${binding.name}`, `changed.${binding.name}`,
setFromChild setFromChild
); );

@ -146,6 +146,10 @@ export function run(fn) {
export function set(newState) { export function set(newState) {
this._set(assign({}, newState)); this._set(assign({}, newState));
if (this.root._lock) return; if (this.root._lock) return;
this.root._flush();
}
export function _flush() {
this.root._lock = true; this.root._lock = true;
callAll(this.root._beforecreate); callAll(this.root._beforecreate);
callAll(this.root._oncreate); callAll(this.root._oncreate);
@ -221,7 +225,8 @@ export var proto = {
_set: _set, _set: _set,
_mount: _mount, _mount: _mount,
_unmount: _unmount, _unmount: _unmount,
_differs: _differs _differs: _differs,
_flush: _flush
}; };
export var protoDev = { export var protoDev = {
@ -236,5 +241,6 @@ export var protoDev = {
_set: _set, _set: _set,
_mount: _mount, _mount: _mount,
_unmount: _unmount, _unmount: _unmount,
_differs: _differs _differs: _differs,
_flush: _flush
}; };

@ -0,0 +1,7 @@
<script>
export default {
oncreate() {
this.set({text: 'correct'});
}
};
</script>

@ -0,0 +1,7 @@
export default {
'skip-ssr': true,
html: `
<p>Text: correct</p>
`
};

@ -0,0 +1,20 @@
<:Component {Child} bind:text=text />
<p>Text: {{text}}</p>
<script>
import Nested from './Nested.html';
export default {
data: () => ({
text: 'incorrect',
Child: null,
}),
oncreate() {
this.set({
Child: Nested
});
},
};
</script>
Loading…
Cancel
Save