mirror of https://github.com/vuejs/vitepress
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
main
gh-pages
userquin/fix-skip-to-content
fix/4928
v2-theme
v1
link-headers-experiment
fix/2980
fix/4605
fix/4375
client-types
userquin/feat-use-best-lang-match-for-last-update
userquin/feat-add-external-translation-repo-links
userquin/feat-add-inert-content-again
userquin/feat-include-ids-and-anchor-check
userquin/feat-add-print-options
fix/2989
progressbar
v0.9.1
v0.10.0
v0.10.1
v0.10.2
v0.10.3
v0.10.4
v0.10.5
v0.10.6
v0.10.7
v0.10.8
v0.11.0
v0.11.1
v0.11.2
v0.11.3
v0.11.4
v0.11.5
v0.12.0
v0.12.1
v0.12.2
v0.13.0
v0.13.1
v0.13.2
v0.14.0
v0.14.1
v0.15.0
v0.15.1
v0.15.2
v0.15.3
v0.15.4
v0.15.5
v0.15.6
v0.16.0
v0.16.1
v0.17.0
v0.17.1
v0.17.2
v0.17.3
v0.18.0
v0.18.1
v0.19.0
v0.19.1
v0.19.2
v0.20.0
v0.20.1
v0.20.10
v0.20.2
v0.20.3
v0.20.4
v0.20.5
v0.20.6
v0.20.7
v0.20.8
v0.20.9
v0.21.0
v0.21.1
v0.21.2
v0.21.3
v0.21.4
v0.21.5
v0.21.6
v0.22.0
v0.22.1
v0.22.2
v0.22.3
v0.22.4
v0.4.1
v0.5.0
v0.6.0
v0.7.0
v0.7.1
v0.7.2
v0.7.3
v0.7.4
v0.8.0
v0.8.1
v0.9.0
v0.9.2
v1.0.0
v1.0.0-alpha.1
v1.0.0-alpha.10
v1.0.0-alpha.11
v1.0.0-alpha.12
v1.0.0-alpha.13
v1.0.0-alpha.14
v1.0.0-alpha.15
v1.0.0-alpha.16
v1.0.0-alpha.17
v1.0.0-alpha.18
v1.0.0-alpha.19
v1.0.0-alpha.2
v1.0.0-alpha.20
v1.0.0-alpha.21
v1.0.0-alpha.22
v1.0.0-alpha.23
v1.0.0-alpha.24
v1.0.0-alpha.25
v1.0.0-alpha.26
v1.0.0-alpha.27
v1.0.0-alpha.28
v1.0.0-alpha.29
v1.0.0-alpha.3
v1.0.0-alpha.30
v1.0.0-alpha.31
v1.0.0-alpha.32
v1.0.0-alpha.33
v1.0.0-alpha.34
v1.0.0-alpha.35
v1.0.0-alpha.36
v1.0.0-alpha.37
v1.0.0-alpha.38
v1.0.0-alpha.39
v1.0.0-alpha.4
v1.0.0-alpha.40
v1.0.0-alpha.41
v1.0.0-alpha.42
v1.0.0-alpha.43
v1.0.0-alpha.44
v1.0.0-alpha.45
v1.0.0-alpha.46
v1.0.0-alpha.47
v1.0.0-alpha.48
v1.0.0-alpha.49
v1.0.0-alpha.5
v1.0.0-alpha.50
v1.0.0-alpha.51
v1.0.0-alpha.52
v1.0.0-alpha.53
v1.0.0-alpha.54
v1.0.0-alpha.55
v1.0.0-alpha.56
v1.0.0-alpha.57
v1.0.0-alpha.58
v1.0.0-alpha.59
v1.0.0-alpha.6
v1.0.0-alpha.60
v1.0.0-alpha.61
v1.0.0-alpha.62
v1.0.0-alpha.63
v1.0.0-alpha.64
v1.0.0-alpha.65
v1.0.0-alpha.66
v1.0.0-alpha.67
v1.0.0-alpha.68
v1.0.0-alpha.69
v1.0.0-alpha.7
v1.0.0-alpha.70
v1.0.0-alpha.71
v1.0.0-alpha.72
v1.0.0-alpha.73
v1.0.0-alpha.74
v1.0.0-alpha.75
v1.0.0-alpha.76
v1.0.0-alpha.8
v1.0.0-alpha.9
v1.0.0-beta.1
v1.0.0-beta.2
v1.0.0-beta.3
v1.0.0-beta.4
v1.0.0-beta.5
v1.0.0-beta.6
v1.0.0-beta.7
v1.0.0-rc.1
v1.0.0-rc.10
v1.0.0-rc.11
v1.0.0-rc.12
v1.0.0-rc.13
v1.0.0-rc.14
v1.0.0-rc.15
v1.0.0-rc.16
v1.0.0-rc.17
v1.0.0-rc.18
v1.0.0-rc.19
v1.0.0-rc.2
v1.0.0-rc.20
v1.0.0-rc.21
v1.0.0-rc.22
v1.0.0-rc.23
v1.0.0-rc.24
v1.0.0-rc.25
v1.0.0-rc.26
v1.0.0-rc.27
v1.0.0-rc.28
v1.0.0-rc.29
v1.0.0-rc.3
v1.0.0-rc.30
v1.0.0-rc.31
v1.0.0-rc.32
v1.0.0-rc.33
v1.0.0-rc.34
v1.0.0-rc.35
v1.0.0-rc.36
v1.0.0-rc.37
v1.0.0-rc.38
v1.0.0-rc.39
v1.0.0-rc.4
v1.0.0-rc.40
v1.0.0-rc.41
v1.0.0-rc.42
v1.0.0-rc.43
v1.0.0-rc.44
v1.0.0-rc.45
v1.0.0-rc.5
v1.0.0-rc.6
v1.0.0-rc.7
v1.0.0-rc.8
v1.0.0-rc.9
v1.0.1
v1.0.2
v1.1.0
v1.1.1
v1.1.2
v1.1.3
v1.1.4
v1.2.0
v1.2.1
v1.2.2
v1.2.3
v1.3.0
v1.3.1
v1.3.2
v1.3.3
v1.3.4
v1.4.0
v1.4.1
v1.4.2
v1.4.3
v1.4.5
v1.5.0
v1.6.0
v1.6.1
v1.6.2
v1.6.3
v1.6.4
v2.0.0-alpha.1
v2.0.0-alpha.10
v2.0.0-alpha.11
v2.0.0-alpha.12
v2.0.0-alpha.13
v2.0.0-alpha.14
v2.0.0-alpha.15
v2.0.0-alpha.2
v2.0.0-alpha.3
v2.0.0-alpha.4
v2.0.0-alpha.5
v2.0.0-alpha.6
v2.0.0-alpha.7
v2.0.0-alpha.8
v2.0.0-alpha.9
${ noResults }
2.0 KiB
2.0 KiB
MPA モード
MPA(Multi-Page Application)モードは、コマンドラインの vitepress build --mpa、または設定で mpa: true を指定することで有効化できます。
MPA モードでは、既定で あらゆるページが JavaScript を含まずに レンダリングされます。結果として、本番サイトは監査ツールにおける初回訪問のパフォーマンススコアが向上しやすくなります。
一方、SPA のナビゲーションがないため、ページ間リンクはフルリロードになります。読み込み後のページ遷移は、SPA モードのような即時性はありません。
また、「既定で JS なし」ということは、実質的に Vue をサーバーサイドのテンプレート言語としてのみ使うことを意味します。ブラウザ側ではイベントハンドラがアタッチされないため、インタラクティブ性はありません。クライアントサイドの JavaScript を読み込むには、特別な <script client> タグを使用します:
<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 モードはクライアント側のインタラクションを極力最小限に抑えたいサイトにのみ使用するのが適しています。