Vue.jsで、「Component template should contain exactly one root element.」エラーが出た時の原因と対応
Vue.jsで、「Component template should contain exactly one root element.」エラーが出た時の原因と対応をまとめました。
公開日:2019年4月9日
エラー内容
このエラーは、「コンポーネントにはルート要素が必要です」というエラーです。
Vueコンポーネントをテンプレート側に書いている際に、HTML親要素がないところでコンポーネントを呼び出していると発生します。
エラーコード例と対処
テンプレートに下記のようなコードがあったとします。
<template>
<div class="hello">
<h1>{{ msg }}</h1>
</div>
<form-a />
</template>
この場合、「<form-a />
」にはHTMLの親要素がありません。<template>
タグはVueの内部タグなので、親要素にはなりません。
単純に、HTML親要素の中に入れてあげればいいので、
<template>
<div class="hello">
<h1>{{ msg }}</h1>
<form-a />
</div>
</template>
として、div要素の中に入れることで、「Component template should contain exactly one root element.」エラーを解消することができます。
単純なエラーですが、Vue.jsの仕組みがわかっていないと理解ができないところなので、「コンポーネントにはHTML親要素が必要」ということを覚えておきましょう。
:
新着ノート
-
NUXT3
公開日:2023年2月16日
-
NUXT3
公開日:2023年1月30日
新着コード
-
Vue.js
公開日:2022年4月18日
-
Vue.js
公開日:2022年4月13日