render レンダー関数

最終更新:2026-10-22

render レンダー関数

render オプションはテンプレートの代わりに仮想ノードを返す関数です。構造を完全に JS で表現したい場合(動的な階層が深い場合など)に使います。

グループオプション: 描画とライフサイクル
種類オプション
スコープコンポーネント内
Vue バージョン3.0+
SSR 対応対応

📝 構文

import { h } from "vue"
export default {
  render() { return h("p", this.msg) }
}

⚙️ 引数

value関数:h() で作った仮想ノード(またはその配列)を返します

戻り値:仮想 DOM ノード(VNode)

▶ 例

以下のコードを編集して結果を確認しましょう:

出力:

Renders three list items: Item 1, Item 2, Item 3.

💡 ポイント

ℹ️ 補足 テンプレートはコンパイル後、render 関数になります。両者は等価で、テンプレートは読みやすく、render はより柔軟です。
💡 ヒント 動的なタグ、深いネスト、プログラム的に構造を組み立てる場合に便利です。
⚠️ 注意 render 関数内にはディレクティブがありません。v-if / v-for は素の JavaScript 式で表現します。
関連ケースは近日公開予定。

📚 関連チュートリアル

❓ よくある質問

Q render が必要になるのはいつですか?
A タグ名やネストがデータに依存するときです。テンプレートでは冗長になってしまいます。
Q JSX との関係は?
A JSX は h() 呼び出しにコンパイルされます。本質は同じで、書き方が HTML に近いだけです。
Q リアクティブなデータは使えますか?
A 使えます。render が this.xxx にアクセスすると依存が自動収集され、変化時に再レンダリングされます。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%