質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Q&A

解決済

2回答

1969閲覧

Vueコンポーネントを登録した際、[Vue warn]: Unknown custom elementと出てしまう

Tikka123456

総合スコア34

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

0グッド

0クリップ

投稿2020/11/10 04:20

編集2020/11/10 08:29

前提・実現したいこと

[Vue warn]: Unknown custom element:というエラーを解決したい

エラー

[Vue warn]: Unknown custom element: <Navbar> - did you register the component correctly? For recursive components, make sure to provide the "name" option. found in ---> <App> at resources/js/App.vue <Root>

環境
Laravel Framework 6.18.20
vue 2.6.12

コード
app.js

import './bootstrap' import Vue from 'vue' import router from './router' import App from './App.vue' new Vue({ el: '#app', router, components: { App }, template: '<App />' })

App.vue

<template> <div> <header> <Navbar /> </header> <main> <div class="container"> <RouterView /> </div> </main> <Footer /> </div> </template> <script> import Navbar from './commponent/Navbar.vue' //このコンポーネントが読み込まれない import Footer from './commponent/Footer.vue' export default { commponents: { Navbar, //このコンポーネントが読み込まれない Footer } } </script>

router.js

import Vue from 'vue' import VueRouter from 'vue-router' // ページコンポーネントをインポートする import PhotoList from './commponent/pages/PhotoList.vue' import Login from './commponent/pages/Login.vue' Vue.use(VueRouter) const routes = [ { path: '/', component: PhotoList // 現在ココだけ表示されている。 }, { path: '/login', component: Login } ] // VueRouterインスタンスを作成する const router = new VueRouter({ mode: 'history', routes }) export default router

追記

参考にしているサイトhttps://www.hypertextcandy.com/vue-laravel-tutorial-setting-up-spa-project/

.js ├──commponent │ ├──pages │ │ ├──Login.vue │ │ └──PhotoList.vue │ ├──Navbar.vue │ └──Footer.vue │ ├──app.js ├──App.vue └──router.js

Navbar.vue

<template> <nav class="nav grey lighten-4 py-4"> <RouterLink class="navbar-brand" to="/"> タイトル </RouterLink> <ul class="navbar-nav ml-auto"> <div class="navbar-menu"> <li class="navbar-item"> <button type="button" class="btn btn-secondary btn-rounded"> <i class="icon ion-md-add"></i> Submit a photo </button> </li> <span class="navbar-item"> username   </span>   <div class="navbar-item">    <RouterLink class="button button--link" to="/login"> Login / Register </RouterLink>   </div>    </div> </ul> </nav> </template>

Footer.vue

<template> <footer class="page-footer font-small unique-color-dark pt-4"> <RouterLink class="button button--link" to="/login"> Login / Register </RouterLink> </footer> </template>

PhotoList.vue ここだけ表示されている

<template> <h1>Photo List</h1> </template> <script> </script>

現在表示されている画面
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

plasticgrammer

2020/11/10 07:03

フォルダ構成について追記をお願いします。 App.vue, router.js はそれぞれどこに格納されているのでしょうか。
Tikka123456

2020/11/10 08:00

回答ありがとうございます。フォルダ構成について追記しました。
plasticgrammer

2020/11/10 08:10

追加で確認させてください。Footerの表示は上手くできているのでしょうか。 また、Navbar.vueのソースも追記頂けないでしょうか。(nameの指定があるかどうか確認したいです)
Tikka123456

2020/11/10 08:30

返信ありがとうございます。Footerは表示されていません。NavbarもFooterもnameの指定はしていません。参考にしたサイトのURLも追記しました。
otolab

2020/11/14 00:19

commponentが気になる...。componentのtypo?
guest

回答2

0

ベストアンサー

commponents: { Navbar, //このコンポーネントが読み込まれない Footer }

mが一個多いです。componentじゃないとVueは理解してくれません。
ディレクトリ構成とかはtypoしてても動きますが、API絡みになってくると働かないです。

footerはFooter Elementがあるので、エラーが出ないだけだと思います。
http://www.htmq.com/html5/footer.shtml

投稿2020/11/14 00:26

otolab

総合スコア765

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tikka123456

2020/11/15 06:15

回答ありがとうございます! 単純なスペルミスにお時間を取らせてしまい申し訳ございません。
guest

0

Footer.vue に export の定義を追加するとどうなるでしょうか。

vue

1<template> 2 <footer class="page-footer font-small unique-color-dark pt-4"> 3 <RouterLink class="button button--link" to="/login"> 4 Login / Register 5 </RouterLink> 6 </footer> 7</template> 8 9<script> 10export default { 11 name: "Footer" 12} 13</script>

投稿2020/11/10 08:48

plasticgrammer

総合スコア629

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tikka123456

2020/11/10 08:59

回答ありがとうございます。nameをFooterとNavbarに記述しましたが変わりませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問