没有人问为什么需要功能,因为这在编程中是显而易见且有用的事情。函数使您可以重用代码,并使应用程序体系结构更好。
为什么不在组件模板中使用相同的功能。如今,许多框架都允许在其他组件内部使用组件。但这更像是连接模块,而不仅仅是功能。毕竟,除了模板之外,组件还可以具有自己的JavaScript代码,自己的样式,并且非常隔离(很好)。
对于这种情况,Malina.js具有“片段”模板的“功能” ,它们使您可以重用模板的不同片段,它们比组件轻得多,不需要移动到单独的文件中(组件通常是必需的),并且它们具有一些普通函数具有的功能,例如递归和闭包,因为结果片段被编译为普通函数。
1.重用模板片段
当您处理组件模板时,尤其是如果它是表单,输入元素,面板等时,可能会有重复的块可以重复使用。下面是js-framework-benchmark的模板模板,其中有许多相同的按钮:
使用“片段”可能看起来像这样:
在这里声明了一个
button带有两个参数的片段id, name,并从button发送了一个“ click”事件@click。这行按钮可以使用指令来制作for/each,但片段不能只用于一行。
2.关闭
因为 一个片段被编译成一个函数,这意味着它几乎可以在任何地方声明,即使在循环中也可以声明
for/each,因此它可以使用闭包。在下面的示例中,该片段box具有一个参数text,一个闭环变量color和一个click从组件根目录开始对单击的调用的函数的引用:@click={click(text, color)}
3.递归
“片段”可以称为自身,它允许进行递归和构建树,“片段”也可以位于组件的底部,因为 在JavaScript中,即使在末尾声明该函数,该函数在整个(当前)范围内仍然可用。
以下是一个可
draw自我调用并构建树的代码段示例:
结论
“片段”是模板的轻量级“片段”,可以在组件内重复使用,它有助于使组件更紧凑,结构更好。
可以在在线REPL编辑器中尝试所有示例,而要点中可以提供示例。
感谢您的关注。