回答
我认为这里没有正确或错误的答案。绝对正确的是,你不能拥有一台拥有50多个路由的路由器......这是一个可维护性的噩梦。相反,我更愿意将我的应用程序分成子应用程序或模块(按需要调用它们),其中每个应用程序或模块都有明确的目的和责任。因此,在一个假设的订单管理系统,我想可能有
- 为了MGMT应用
- 人应用
- router.js
- app.js
- ...
- order app
- 个router.js
- app.js
- ...
- ...
- globalrouter.js
- globalapp.js
- 人应用
这里的关键是只是为了永远不要创建一个巨大的应用程序/庞然大物,而是创建许多小应用程序,它们可以组合在一起形成整个应用程序(commu在他们每个人之间进行事件处理)。也就是说,在上面的例子中,“人”以及“订单”应用程序都有自己的路由器,它们只保存与其相关的路由。 “全球”应用程序形成胶水,将所有单个应用程序放在一起,例如具有应用程序菜单,也可能是一些通用路线,对特定的模块/子应用程序并不严格。
也许Backbone Aura是一个很好的开始。
我做同样的事情。创建子应用程序,每个都有自己的路由器,这对于扩展您的应用程序非常重要。 –
这实际上是我的架构,只有每个模块上没有路由器,谢谢好主意:) – Barry
您可以将路由器分解为多个文件。如何分解它取决于你的用例,并且在我的应用程序中,我们按模块分解它。
如何定义一个模块取决于您的应用程序,但一般的经验法则是您将一个“功能”或主题下的功能组合在一起。例如,假设您的应用程序是一个基本的“公司”应用程序(使用Backbone.js的不好的例子,但让我们保持简单。)该网站有几个部分:“关于我们”,“产品”,“客户“,”支持“,”博客“,”职业“。在每个部分中,它有两级子页面(就像在产品中一样,您可以拥有产品列表,并且在每个产品中,您可以深入查看产品,了解如何购买产品,等等)
每个部分,在这个例子中,我们可以把它们当作模块。并且,基于此,您可以将包含所有路由的单个路由器分解为不同的路由器。 (他们当然可以在不同的文件!)
var MainRouter = Backbone.Router.extend({
routes: {
'/': 'home'
},
home: function() {
// Display home view
}
});
var ProductRouter = Backbone.Router.extend({
routes: {
'/product': 'listProducts',
'/product/:id/buy': 'buyProduct',
'/product/:id': 'viewProduct',
'/product/compare/:id1/:id2': 'compareProduct'
},
listProducts: function() { ... },
buyProduct: function(id) { ... }
viewProduct: function(id) { ... }
compareProduct: function(id1, id2) { ... }
});
当你启动应用程序,你只需要启动他们都:
$(function() {
new MainRouter();
new ProductRouter();
});
通过这样做,你也可以向下打破你的代码转换成不同的模块,甚至可以保留意见,模板和模型按模块分开。
- 1. 组织expressjs路线的问题
- 2. 如何在routes.yml中组织路线?
- 3. 组织快递JS我的路线
- 4. 维护和组织ExpressJS路线
- 5. Backbonejs:需要时的路线的导航
- 6. 下划线与backbonejs
- 7. Angular2组织路由模块
- 8. 组织的搜索路径
- 9. 组织接线柱阵列
- 10. crm在线,添加组织
- 11. Java线程组织指导
- 12. google目录api - 根组织单位路径的组织名称
- 13. React + React-router - >儿童路线最佳组织?
- 14. Rails:如何格式化和组织路线
- 15. 更好的方式来组织轨道路线?
- 16. CSS组织结构图水平线路连接器
- 17. 如何组织Rails路线按城市划分内容?
- 18. 如何组织一个蓝图与多个路线文件
- 19. MVC:人们如何组织生产层面的场景路线
- 20. 路由和事件 - backboneJS
- 21. Codeigniter + BackboneJS路由问题
- 22. laravel路线组
- 23. Backbonejs在路线可选参数不匹配的网址
- 24. 如何组织路由器历史
- 25. 如何更好地组织网格线?
- 26. Ninject模块或组织接线,依赖
- 27. 组织数据库在线诅咒
- 28. 关于在cuda中组织线程
- 29. 如何在线程中组织图像?
- 30. 共享内存组织线程和块
你确定你真的需要一百吗?听起来好像在路线的定义中可能有些问题。也许你可以定义模板路线,从而减少你拥有的路线数量:http://backbonejs.org/#Router – Juri
这只是一个例子,请注意这些是静态和动态路线的结合,好吧,也许我们只是减少它到50.那你怎么组织你的路线呢?现在我认为我已经有超过20条路线了(dyanamic和静态路线),并且我把它放在一个文件/路线对象中看起来很乱。 – Barry
您可以拥有尽可能多的路由器,您如何组织它们取决于您。 –