我使用FlowRouter并在docs of FlowRouter BlazeLayout中说:
同样,您可以创建多个模板并在彼此之间切换。但是当您更改布局时,整个UI将再次重新渲染。
因此,如果可能的话,使用一些布局是个好主意。
问题:因为我在控制台上没有任何错误:是可以的还是不好的做法'当我声明一个包含我所有模板组件和每条路线的布局时,只需设置我需要的那些?
示例:
<template name="layout">
{{> Template.dynamic template=nav1}}
{{> Template.dynamic template=nav2}}
{{> Template.dynamic template=main}}
{{> Template.dynamic template=nav3}}
{{> Template.dynamic template=footer}}
</template>
// routes.js
publicRoutes.route('/', {
name: "index",
action: function(params, queryParams) {
BlazeLayout.render('layout', {
nav1: "nav1",
main: "index",
footer: "footer"
});
}
});
答案 0 :(得分:1)
我认为,只有你的模板组件在不同的DOM元素内部呈现时,才有必要使用你的解决方案。
如果每个模板组件都在同一个DOM节点中呈现,那么似乎没有必要全部指定它们,而不是仅使用nav: "navX"
而不是navN: "navN"
动态确定要呈现的模板组件。并且只有一个模板组件{{>Template.dynamic template=nav}}
。
我发现Flow-Router缺少一些更灵活的模板或路由组默认模板定义。