路径的Vue路由配置“组件”:/不能是字符串ID

Posted

技术标签:

【中文标题】路径的Vue路由配置“组件”:/不能是字符串ID【英文标题】:Vue route config "component" for path: / cannot be a string id 【发布时间】:2018-04-19 14:20:05 【问题描述】:

我正在学习 Vue Js - v2.5.3

我正在使用组件和路由概念来开发项目。 组件在哪里工作,但是当我尝试定义路由时出现错误

Uncaught Error  ::  route config component for path: /signin cannot be a string id.
Use an actual component instead.

 Uncaught Error  ::  route config component for path: / cannot be a string id.
Use an actual component instead.

我无法理解出了什么问题。请帮我。当我运行 npm run dev 时,vue 编译完成,但在浏览器控制台上出现错误。

我的代码在 App.js 上

window.Vue = require('vue');
import VueRouter from 'vue-router';
 Vue.use(VueRouter);

 const homePage =   Vue.component('home', require('./components/Home.vue'));
 const example_comp =    Vue.component('example', require('./components/Example.vue'));
 const registration =   Vue.component('signin', require('./components/Signin.vue'));

  const router = new VueRouter(
routes: [
    
        path : '/',
        // name : 'home',
        component : 'home',
    ,
    
        path : '/signin',
        // name : 'signin',
        component : 'signin',
    ,
    
        path : '/example',
        // name : 'example',
        component : 'example',
    
]
);

const app = new Vue(
el: '#app',
router: router,
);

Home.blade.php

    <div id="app">
    <p > <router-link to="/usersSignIn">User Regitration </router-link></p>
    <p ><router-link to="/login"> Login  </router-link></p>


    <router-view></router-view>

</div>

组件 :: Home.vue

 <template>
 <div>
    <p> This home page.</p>
 </div>
 </template>
 <script>
 export default 

 
 </script>

【问题讨论】:

不要对路由中的组件使用字符串:例如:不是component : 'home',,而是component: homePage, 或者直接在组件后面使用requirecomponent: require('./components/Home.vue') 但你需要名字 谢谢,我也用过。 有效吗?? 是的,但在其他一些机会之后。然后得到我期望的结果。 【参考方案1】:

这样配置路由文件

import Vue from 'vue'
import VueRouter from 'vue-router'

Vue.use(VueRouter);


const router = new VueRouter(
    routes: [
         path: '/', component: require('./components/HomeComponent.vue').default ,
         path: '/about', component: require('./components/AboutComponent.vue').default ,
    ]
)

new Vue(
    router
).$mount('#app')

接下来,将以下行添加到要显示路线的视图中

<router-view></router-view>

【讨论】:

【参考方案2】:

你需要改变你的 const 路由器,如下所述:

const router = new VueRouter(
routes: [
    
        path : '/',
        // name : 'home',
        component : homePage,
    ,
    
        path : '/signin',
        // name : 'signin',
        component : registration,
    ,
    
        path : '/example',
        // name : 'example',
        component : example_comp,
    
]
);

【讨论】:

【参考方案3】:

我在 app.js 文件中编写了磨损代码 旧代码是

 const app = new Vue(
 el: '#app',
router = router,
 );

正确的代码是

    const app = new Vue(
    el: '#app',
    router : router,
    );

所以在那之后我没有检查并运行 npm run dev.... 我所做的第二次更改 带组件

组件:require('home', './components/Home.vue')

【讨论】:

以上是关于路径的Vue路由配置“组件”:/不能是字符串ID的主要内容,如果未能解决你的问题,请参考以下文章

Vue路由进阶

vue刷新当前路由:router-view 复用组件时不刷新的3种解决方案总结

VUE3 Router路由

js跳转vue

vue 子路由怎么修改父路由的data

14.Vue路由参数传递以及重定向