hydrating static content

pull/4297/head
Tan Li Hau 6 years ago
parent 83fb842efa
commit b13ea67e59

@ -384,7 +384,7 @@ export default class ElementWrapper extends Wrapper {
this.add_classes(block);
this.add_manual_style_scoping(block);
if (nodes && this.renderer.options.hydratable && !this.void) {
if (nodes && this.renderer.options.hydratable && !this.void && !this.can_use_innerhtml) {
block.chunks.claim.push(
b`${this.node.children.length > 0 ? nodes : children}.forEach(@detach);`
);

@ -35,7 +35,7 @@ export default class Wrapper {
}
});
this.can_use_innerhtml = !renderer.options.hydratable;
this.can_use_innerhtml = true;
this.is_static_content = !renderer.options.hydratable;
block.wrappers.push(this);

@ -0,0 +1,5 @@
<div>
<p>Hello world</p>
<p>Hello world</p>
<p>Hello world</p>
</div>

@ -0,0 +1,5 @@
<div>
<p>Hello world</p>
<p>Hello world</p>
<p>Hello world</p>
</div>

@ -0,0 +1,5 @@
<div>
<p>Hello world</p>
<p>Hello world</p>
<p>Hello world</p>
</div>

@ -0,0 +1,5 @@
module.exports = {
options: {
hydratable: true,
},
};

@ -0,0 +1,48 @@
/* generated by Svelte vX.Y.Z */
import {
SvelteComponent,
children,
claim_element,
detach,
element,
init,
insert,
noop,
safe_not_equal
} from "svelte/internal";
function create_fragment(ctx) {
let div;
return {
c() {
div = element("div");
div.innerHTML = `<p>Hello world</p>
<p>Hello world</p>
<p>Hello world</p>`;
},
l(nodes) {
div = claim_element(nodes, "DIV", {});
var div_nodes = children(div);
},
m(target, anchor) {
insert(target, div, anchor);
},
p: noop,
i: noop,
o: noop,
d(detaching) {
if (detaching) detach(div);
}
};
}
class Component extends SvelteComponent {
constructor(options) {
super();
init(this, options, null, create_fragment, safe_not_equal, {});
}
}
export default Component;

@ -0,0 +1,5 @@
<div>
<p>Hello world</p>
<p>Hello world</p>
<p>Hello world</p>
</div>
Loading…
Cancel
Save