为什么要new多个router(),管理路由呢?

为什么要new多个router(),管理路由呢?

如题,不明白用多个的原因,只是为了好拆分,逻辑清晰吗?还是有其他原因?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

为什么要new多个router(),管理路由呢?

——因为router是一个原型,new可以用来实例化一个原型(类),从而在内存中分配一个实例对象。

如题,不明白用多个的原因,只是为了好拆分,逻辑清晰吗?

——每个类都会有自己的作用域、私有方法,逻辑上把路由进行了切分。

还是有其他原因?

router = new Router()之后,router继承了Router这个对象,router是Router的一个实例。

——这个可以翻看一下koa-router的源码了

http://img1.sycdn.imooc.com//climg/5e8613370913c79a12941100.jpg

参考: 

https://zhuanlan.zhihu.com/p/23987456



  • Hew_520 提问者 #1
    我就是疑惑,new一个实例就可以处理所有的路由了,为什么要创建多个实例。比如课程里面所说的示例,分别在两个js中各new了一个router实例,最后合并。如果我只new一个实例,然后模块路由分js去管理,最后导入到这一个router实例所在的js,是不是也是一样的呢?
    2020-04-03 09:01:02
  • Brian 回复 提问者 Hew_520 #2
    当然可以,但是一个Router只会有一个prefix,你如果api层级太多,你会发现,你分了文件,也是噩梦。比如: 你可能会写/admin/add,/user/add 等等,都需要写全这个路径!建议与官方的demo写法一致,参考koa-combine-routes的用法,简化逻辑层次!
    2020-04-03 09:05:52
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师