javascript - nuxt.js 中的布局真的有用吗?有什么好处?
问题描述
据我了解,布局仅有助于摆脱导入组件并不得不将每个页面包装在布局组件中。使用自动导入功能,您甚至可以摆脱导入。所以本质上你只是节省了将页面包装在布局组件中的需要。
没有组件而只有一个字符串 ( layout: "my-layout"
) 会降低灵活性,因为您不能将道具或事件从页面组件传递给布局组件。
使用布局时是否有性能或任何其他优势?我认为拥有一个布局文件夹是一种很好的做法,但我没有看到在选项 API 中添加布局道具的好处。
解决方案
这篇文章/r/Nuxt
很有趣:https ://www.reddit.com/r/Nuxt/comments/iy7a9u/eli5_difference_between_components_pages_and
我会引用一些有趣的回复:
布局:如果您有一些组件,您知道要在多个页面上使用(例如页眉和页脚),您可以将它们导入并添加到布局中,然后在需要它的页面上使用此布局. 无需单独导入这些必备组件并将这些组件单独添加到每个页面中,并且代码重复更少。此外,任何应该仅适用于特定页面的 css 定义都可以放在其中,而不必分别将它们添加到每个页面/组件中。
布局实际上只是顶级包装器组件,它们非常有助于将大量样板代码保留在一个位置,而不是将其插入到每个页面中。例如,我可以有一个博客布局,右侧是侧边栏,顶部是面包屑,左侧是小部件。我会创建一个“blog.vue”,这样我就可以保持我的页面干燥。
TLDR:您应该使用Layouts
顶级包装器来保持干燥。他们不应该有任何道具,Pages
因为他们正在包装它们。当然,一个组件也可以完成这方面的工作,但它有点冗长。
IMO 没有性能优势(一切都是组件),同时Layouts
更具语义。
推荐阅读
- spring-boot - 如何在@Query 中添加动态位置?
- angular - XSRF 防伪:Asp.Net Core 2 WebApi(不是 MVC)+ Angular 的单独服务器是可能的吗?
- intellij-idea - 如何完全禁用 IntelliJ 上的代码覆盖率按钮?
- java - 使用 AM/PM 进行 LocalTime 解析
- java - 可选对象的 orElseThrow 无法解析
- webpack - 根据入口点生成 splitChunks 名称
- php - 在 PHP 中使动态树视图引导程序适应我的 BDD
- javascript - Nodejs 导入的模块未定义,但在使用 if 语句检查或更改导入顺序时有效
- java - DSA(数字签名算法)实施 - 密钥生成
- ios - 减小 png 图像的文件大小