我正在开发一个静态站点生成器,我希望能够同时支持响应式 JavaScript 交互和标准的 load-a-fresh-page-into-the-browser 超链接。我突然想到,像 Svelte 这样的东西可能很适合这个。我可以使用服务器端渲染支持为我的所有页面生成 HTML,然后我可以编译和发布 JavaScript 组件hydratable: true
以支持动态功能。
我用这种方法想到的一个问题是,我的项目的大部分组件都是完全静态的内容:只有 HTML 和超链接,没有任何状态或事件处理程序,而且我不会更改道具,除非我生成一个新的 HTML 文件不同的页面。如果我在页面加载时天真地生成 JavaScript 来补充所有这些组件,我最终可能会得到一个比我实际需要的更大的包(并且在运行时完成更多的工作)。
Svelte 是否提供任何方法来优化这种情况?我可以以某种方式检查一个组件是否是其 props 的纯函数,以便在不需要时避免给它补水?还是编译器足够聪明,可以为我做到这一点?