Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

untymage's avatar

[Vue warn]: Unknown custom element: <router-view>

Any idea why i'm getting this error?:

admin.js:4555 [Vue warn]: Unknown custom element: <router-view> - did you register the component correctly? For recursive components, make sure to provide the "name" option.

(found in <Root>)

admin.js:


import Vue from 'vue';
import axios from 'axios';
import VueRouter from 'vue-router';
import routes from './routes';


Vue.use(VueRouter);


let app = new Vue({
    el: '#app',
    router: new VueRouter(routes),
});

routes.js :


import Create from './components/admin/form/Create';


export default {

    mode: 'history',

    routes: [
        {
            path: '/admin/create',
            component: Create
        }
    ],
}


master.blade.php:


<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Create</title>
    <link href="{{ asset('css/app.css') }}" rel="stylesheet">
</head>
<body>

<div id="app">
    <router-view></router-view>
</div>

<script src="{{ asset('admin.js') }}"></script>


</body>
</html>


0 likes
8 replies
steve_laracasts's avatar

I don't see a Vue component called router-view anywhere in your code!

You need to create that component!!

untymage's avatar

isn't <router-view> built in Vue component?

untymage's avatar
untymage
OP
Best Answer
Level 13

Problem was asset('admin.js') which should be '/js/admin.js'

fraserk's avatar

Yes, try doing a hard refresh in the browser your js file might be cache.

1 like
steve_laracasts's avatar

Cool - clad you got it sorted, I have just opened a can of worms for myself and am now reading up on VueRouter!

Thanks!!

Atef95's avatar

Thank you so much , I spent almost two hours struggling to resolve it

__christian's avatar
			import Vue from "vue";
			import * as VueRouter from "vue-router";
			Vue.use(VueRouter);

Please or to participate in this conversation.