Nuxt.jsで開発中に以下のエラーが出てハマった。
[Vue warn]: Unknown custom element: <コンポーネント名> - did you register the component correctly? For recursive components, make sure to provide the "name" option.
エラーメッセージにあるように、nameオプションで指定してもダメだった。
今回の場合、原因はコンポーネント間の循環参照の記述方法だった。
Vue.jsのドキュメントのコンポーネント間の循環参照に書いてあるように、記述方法には2通りある。
beforeCreate
でrequire
を使ってコンポーネント登録するか、components
フィールド内で import
を使ってコンポーネント登録するかだ。
Nuxt.jsの場合では、require
の方でやると前述のエラーが出るが、import
の方でやるとエラーは出ないようだ。
Nuxt.jsでエラーが出る記述
<script>
export default {
// Nuxt.jsではエラー
beforeCreate() {
this.$options.components.Component = require("~/components/modal/Component.vue").default;
}
};
</script>
Nuxt.jsでエラーが出ない記述
<script>
export default {
// Nuxt.jsでもOK
Component: () => import("~/components/modal/Component.vue")
};
</script>
コメント