我认为这个问题源于父模板在带有Vue Router 4的Vue.js 3中有多个子模板。在这两个包的先前版本中,我从未遇到过这个问题。
我有一个简单的App.vue文件:
router-link to="/information"链接工作正常。它只是加载其中没有其他组件的视图。
另一个router-link :to="{ path:'/create',name:'PostCreate'}"在重复尝试加载组件约50次后失败,并在控制台中记录以下内容:
vuerouter.js
Information.vue和PostCreate.vue之间的唯一区别是后者导入了另一个vue组件来为用户创建帖子创建form。
Information.vue
PostCreate.vue
为什么这在Vue-Router4的Vue.js 3中是一个问题,而以前它工作得很好?我该怎么解决它呢?
发布于 2021-02-27 10:23:51
这是因为PostCreate视图试图递归加载自身。由于视图和子组件使用了相同的名称,因此父组件名称将覆盖注册中的子组件名称,并且视图将尝试加载自身而不是子组件。
这等同于此,这也会导致视图试图加载自身。
您不会得到Failed to resolve component错误,因为它本身就是错误。相反,您会得到相同的递归错误。
因此,您只需重命名该子组件。对于不同的组件,特别是在较大的项目中,总是使用不同的文件名,以保持文件的清晰,这是一个很好的实践。
https://stackoverflow.com/questions/66394631
复制相似问题