我正在使用 FlowRouter 并在 docs of FlowRouter BlazeLayout 中它说:
Likewise you can create multiple templates and switch between each other. But when you are changing the layout, whole UI will get re-rendered again.
So, it's a good idea to use a few layouts if possible.
问题:由于我在控制台中没有收到任何错误:当我使用所有模板组件声明布局并且每个路由仅设置我需要的布局时,这可以还是“不好的做法” ?
示例:
<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"
});
}
});
最佳答案
我认为唯一需要您的解决方案的情况是您的模板组件在不同的 DOM 元素内呈现。
如果每个模板组件无论如何都在同一个 DOM 节点中渲染,那么似乎没有必要全部指定它们,而不是仅仅使用 nav: "navX"动态确定要渲染的模板组件
而不是 navN: "navN"
并且只有单个模板组件 {{>Template.dynamic template=nav}}
。
我确实发现 Flow-Router 缺少一些更灵活的模板或路由组默认模板定义。
关于javascript - FlowRouter BlazeLayout - 省略模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36529416/