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

新手上路,请多包涵

使用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路径下文件也没有被构建为路由,所以这里很疑惑。

阅读 6.6k
2 个回答

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

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

},

新手上路,请多包涵

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

图片描述

clipboard.png

然后是坑爹的路由:

clipboard.png

请问怎么解决这个问题?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题