umijs使用约定路由将model也生成进了路由

发布于 2022-09-11 16:34:22 字数 1129 浏览 11 评论 0

使用umi.js+dva.js构建应用时路由问题

照着umi.js的文档构建包含dva.js的项目时,使用约定路由自动生成的路由文件会将dva.js的model文件也生成路由项

相关代码

pages结构
+pages
    -index.js
    -model.js
自动生成的routes
routes: [
    { path: '/', component: './pages/index.js' },
    { path: '/model', component: './pages/model.js' }
]

按照文档中所述,在使用dva.js时,model会按照名称进行自动注册,规则如下:

  • src/models/**/*.js 为 global model
  • src/pages/**/models/**/*.js 为 page model
  • global model 全量载入,page model 在 production 时按需载入,在 development 时全量载入
  • page model 为 page js 所在路径下 models/**/*.js 的文件
  • page model 会向上查找,比如 page js 为 pages/a/b.js,他的 page model 为pages/a/b/models/**/*.js + pages/a/models/**/*.js,依次类推
  • 约定 model.js 为单文件 model,解决只有一个 model 时不需要建 models 目录的问题,有 model.js 则不去找 models/**/*.js

注册为model之后,应该不会被构建为路由,ant admin中使用这种机构时,model.js文件或/models路径下文件也没有被构建为路由,所以这里很疑惑。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

离去的眼神 2022-09-18 16:34:22

你把你的model.js放在models文件夹里面,然后在你的umirc.js里面配置
routes: {

exclude: [/models\//, /services/, /components/,],

},

时光暖心i 2022-09-18 16:34:22

同问,我这个总是把models里的文件生成路由,好烦!

图片描述

clipboard.png

然后是坑爹的路由:

clipboard.png

请问怎么解决这个问题?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文