SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

【最新Nuxtアップデート解説】Nuxtの変更点まとめ

Vueベースのフレームワーク「Nuxt 4.3」までの大きな変更点──コンポーザブルやコンポーネント

【最新Nuxtアップデート解説】Nuxtの変更点まとめ 第2回

NuxtLinkのプリフェッチトリガー

 次に紹介するのは、NuxtLinkコンポーネントのプリフェッチに関する変更です。

NuxtLinkのプリフェッチ

 NuxtLinkコンポーネントは、言わずと知れたリンクを生成するコンポーネントであり、Nuxtアプリケーションの根幹をなすものです。このコンポーネントは、リンク先を自動でプリフェッチ(先読み)する機能を持っています。

 具体的には、リンクがビューポート(ブラウザの表示領域)に表示されたり、ユーザーがスクロールしたりするとプリフェッチが行われます。さらに、ブラウザが他の処理で忙しい場合や、ネットワークがオフライン・低速な場合はプリフェッチが自動的に抑制されるため、ユーザー体験を損なうことなくパフォーマンスを向上させます。

プリフェッチを制御できるprefetch-on属性

 もしこの自動プリフェッチを無効にしたい場合は、no-prefetch属性を記述するか、v-bind:prefetch属性をfalseとします。これに加え、バージョン3.13からは、単にプリフェッチを行うか否かだけでなく、より細かくタイミングを制御できるようになりました。それがprefetch-on属性です。

<NuxtLink v-bind:to="{name: 'one'}" prefetch-on="visibility">

 属性値は、表1のものが指定できます。

表1:prefetch-onの属性値
属性値 内容
visibility リンクがビューポートに表示されたらプリフェッチを行う
interaction リンクがホバーされるかフォーカスされるとプリフェッチを行う

 prefetch-onの属性値としては、先のコードのように片方のみを指定する方法もありますが、次のコードのようにオブジェクトを指定することで、両方を指定することも可能です。

<NuxtLink v-bind:to="{name: 'one'}" prefetch-on="{ visibility: true, interaction: true }">

 prefetch-on属性の導入により、開発者はアプリケーションのパフォーマンス要件やユーザーの操作感を考慮しながら、よりきめ細やかにプリフェッチの挙動を制御できるようになりました。

レンダリングを限定できる拡張子

 最後に紹介するのは、バージョン3.11で導入された拡張子である.client.vue.server.vueです。拡張子から想定できるように、ページコンポーネントに対してレンダリングするタイミングを限定する仕組みです。

 これまでも、レンダリングをクライアントサイドに限定するにはClientOnlyコンポーネントが使われていました。しかし、.client.vueを使用することで、このClientOnlyコンポーネントの機能をページ全体に適用できます。例えば、リスト6はその具体例です。

[リスト6]now.client.vue
<script setup lang="ts">
const now = ref(new Date());
</script>
<template>
  <p><NuxtTime v-bind:datetime="now" locale="ja-JP" timeStyle="full"/></p>
</template>

 このページを表示させた際、サーバサイドでレンダリングされるタグは、以下の空のdivタグのみとなります。

<div id="__nuxt"><div></div></div>

 その後、ブラウザでクライアントサイドレンダリングが実行され、結果的に次のタグが生成されます。

<div id="__nuxt">
  <p><time datetime="2026-02-16T05:03:52.890Z">14時03分52秒 日本標準時</time></p>
</div>

 一方、上記のリスト6と同じコードをnow.server.vueとして作成した場合、このページにアクセスすると、以下のようにサーバーサイドで完全にレンダリングされたタグが生成されます。

<div id="__nuxt"><div>
  <p><time data-locale="ja-JP" data-time-style="full" datetime="2026-02-16T05:07:45.230Z" data-prehydrate-id=":NIiDfe5__B:">14時07分45秒 日本標準時</time></p>
</div></div>

まとめ

 Nuxtのバージョン4.3までの変更点をテーマごとに紹介する本連載の第2回目は、いかがでしたでしょうか。今回は、コンポーザブルやコンポーネントに関して、変更されたものや新たに追加されたものをいくつか紹介しました。

 バージョン4.3までをまとめた内容としては、今回で一旦終了しますが、Nuxtは今後も進化を続けます。新たなバージョンの変更点にも注目し、機会があればまた紹介していきたいと思います。

この記事は参考になりましたか?

【最新Nuxtアップデート解説】Nuxtの変更点まとめ連載記事一覧
この記事の著者

WINGSプロジェクト 齊藤 新三(サイトウ シンゾウ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook <個人紹介>WINGSプロジェクト所属のテクニカルライター。Web系製作会社のシステム部門、SI会社を経てフリーランスとして独立。屋号はSarva(サルヴァ)。HAL大阪の非常勤講師を兼務。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/23622 2026/03/19 08:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング