跳至内容

MPA 模式 实验性

MPA(多页面应用程序)模式可以通过命令行使用 vitepress build --mpa 启用,也可以通过配置使用 mpa: true 选项启用。

在 MPA 模式下,所有页面默认情况下都不会包含任何 JavaScript。因此,生产网站可能会从审核工具获得更好的首次访问性能得分。

但是,由于没有 SPA 导航,跨页面链接会导致完整页面重新加载。MPA 模式下的页面加载后导航不会像 SPA 模式那样立即完成。

还要注意,默认情况下不使用 JS 意味着你实际上只是将 Vue 用作服务器端模板语言。浏览器中不会附加任何事件处理程序,因此不会有任何交互性。要加载客户端 JavaScript,你需要使用特殊的 <script client> 标签

html
<script client>
document.querySelector('h1').addEventListener('click', () => {
  console.log('client side JavaScript!')
})
</script>

# Hello

<script client> 是 VitePress 独有的功能,而不是 Vue 功能。它在 .md.vue 文件中都有效,但仅在 MPA 模式下有效。所有主题组件中的客户端脚本将捆绑在一起,而特定页面的客户端脚本将仅为该页面拆分。

请注意,<script client> 不会被评估为 Vue 组件代码:它被处理为普通的 JavaScript 模块。因此,仅当你的网站需要绝对最少的客户端交互性时才应使用 MPA 模式。