always load the templates in hydration
This commit is contained in:
1 parent
696109db10
commit
9baef6bcd9
2 files changed
+3
-3
No files matched your search
@@ -26,7 +26,7 @@ pub struct Mutations<'a> {
|
|||||||
/// Any templates encountered while diffing the DOM.
|
/// Any templates encountered while diffing the DOM.
|
||||||
///
|
///
|
||||||
/// These must be loaded into a cache before applying the edits
|
/// These must be loaded into a cache before applying the edits
|
||||||
pub templates: Vec<Template<'static>>,
|
pub templates: Vec<Template<'a>>,
|
||||||
|
|
||||||
/// Any mutations required to patch the renderer to match the layout of the VirtualDom
|
/// Any mutations required to patch the renderer to match the layout of the VirtualDom
|
||||||
pub edits: Vec<Mutation<'a>>,
|
pub edits: Vec<Mutation<'a>>,
|
||||||
|
|||||||
@@ -198,8 +198,9 @@ pub async fn run_with_props<T: 'static>(root: fn(Scope<T>) -> Element, root_prop
|
|||||||
// todo: we need to split rebuild and initialize into two phases
|
// todo: we need to split rebuild and initialize into two phases
|
||||||
// it's a waste to produce edits just to get the vdom loaded
|
// it's a waste to produce edits just to get the vdom loaded
|
||||||
|
|
||||||
// we need to save the templates in case hydration fails
|
|
||||||
let templates = dom.rebuild().templates;
|
let templates = dom.rebuild().templates;
|
||||||
|
websys_dom.load_templates(&templates);
|
||||||
|
|
||||||
if let Err(err) = websys_dom.rehydrate(&dom) {
|
if let Err(err) = websys_dom.rehydrate(&dom) {
|
||||||
log::error!(
|
log::error!(
|
||||||
"Rehydration failed {:?}. Rebuild DOM into element from scratch",
|
"Rehydration failed {:?}. Rebuild DOM into element from scratch",
|
||||||
@@ -209,7 +210,6 @@ pub async fn run_with_props<T: 'static>(root: fn(Scope<T>) -> Element, root_prop
|
|||||||
|
|
||||||
let edits = dom.rebuild();
|
let edits = dom.rebuild();
|
||||||
|
|
||||||
websys_dom.load_templates(&templates);
|
|
||||||
websys_dom.load_templates(&edits.templates);
|
websys_dom.load_templates(&edits.templates);
|
||||||
websys_dom.apply_edits(edits.edits);
|
websys_dom.apply_edits(edits.edits);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user