Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 木偶事件聚合器与主干路由器_Javascript_Backbone.js_Marionette_Publish Subscribe - Fatal编程技术网

Javascript 木偶事件聚合器与主干路由器

Javascript 木偶事件聚合器与主干路由器,javascript,backbone.js,marionette,publish-subscribe,Javascript,Backbone.js,Marionette,Publish Subscribe,我对这个世界很陌生,所以我需要澄清一下。也许我在这个问题上错了。所以,请随意纠正我 我在研究木偶和脊梁是如何一起工作的。哦,是的。木偶让我们延伸到主干。真是好东西 对我来说不明显的事情是何时使用主干网提供的路由机制,何时使用木偶的发布者/订阅者模式 有什么经验法则吗 这里有一个类似的讨论,但没有关于如何使用这个或那个的建议。事件聚合器对于通知事件更有用。(考虑一些反馈) 来自服务器的消息(更新的记录) 让其他模型知道情况已经发生了变化 保存时锁定所有内容,直到保存 一瞬间的事情 路由器适用于

我对这个世界很陌生,所以我需要澄清一下。也许我在这个问题上错了。所以,请随意纠正我

我在研究木偶和脊梁是如何一起工作的。哦,是的。木偶让我们延伸到主干。真是好东西

对我来说不明显的事情是何时使用主干网提供的路由机制,何时使用木偶的发布者/订阅者模式

有什么经验法则吗


这里有一个类似的讨论,但没有关于如何使用这个或那个的建议。

事件聚合器对于通知事件更有用。(考虑一些反馈)

  • 来自服务器的消息(更新的记录)
  • 让其他模型知道情况已经发生了变化
  • 保存时锁定所有内容,直到保存
  • 一瞬间的事情
路由器适用于您希望状态可保存的事物(请考虑MPA中的单独页面)

  • 模型编辑页面
  • 模型视图页面
  • 在另一个事件或活动改变它之前一直存在的东西

如果你不确定某件事是一个事件还是一个页面,那么考虑一下,然后单独问这个问题。

事件聚合器在通知事情时更有用。(考虑一些反馈)

  • 来自服务器的消息(更新的记录)
  • 让其他模型知道情况已经发生了变化
  • 保存时锁定所有内容,直到保存
  • 一瞬间的事情
路由器适用于您希望状态可保存的事物(请考虑MPA中的单独页面)

  • 模型编辑页面
  • 模型视图页面
  • 在另一个事件或活动改变它之前一直存在的东西

如果你不确定某件事是一个事件还是一个页面,那么考虑一下,然后单独问这个问题。

我对路线管理的看法在我关于木偶的书的免费预览中解释()

基本上,我的观点(其他人不一定同意)是,当用户通过URL“进入”应用程序时,应该使用主干的路由来配置应用程序状态。换句话说,它将解析参数,并调用适当的控制器操作

但一旦设置了初始状态,就不应再触发路由代码,即使用户在应用程序中导航也是如此

下面是一个例子:

  • 用户进入“联系人/2/编辑”。主干路由代码将提取
    2
    参数,并使用该
    id
    参数调用
    edit
    控制器操作(获取该联系人,显示正确的视图等)。换句话说,正在配置初始应用程序状态
  • 用户单击指向“联系人”URL的“显示所有联系人”链接。在这里,我认为应该通过木偶事件(即,表示用户希望看到所有联系人)来处理此修改。毕竟,我们知道用户想要做什么,以及应该显示哪个URL片段。换句话说,路由代码没有理由介入
  • 请注意,这是我的观点,其他开发人员在用户单击链接时只需传递
    trigger:true
    。但正如我在上面的摘录一书中所解释的,这往往会导致开发人员创建“javascript中的无状态应用程序”(例如,在URL中传递大量参数,即使它们应该存储在应用程序的状态中)。毕竟,在默认情况下,主干的
    navigate
    方法具有
    trigger:false
    ,这是有原因的


    德里克·贝利(木偶的创作者)也在这里讨论了这个问题:

    我对路线管理的看法在我关于木偶的书的免费预览中解释()

    基本上,我的观点(其他人不一定同意)是,当用户通过URL“进入”应用程序时,应该使用主干的路由来配置应用程序状态。换句话说,它将解析参数,并调用适当的控制器操作

    但一旦设置了初始状态,就不应再触发路由代码,即使用户在应用程序中导航也是如此

    下面是一个例子:

  • 用户进入“联系人/2/编辑”。主干路由代码将提取
    2
    参数,并使用该
    id
    参数调用
    edit
    控制器操作(获取该联系人,显示正确的视图等)。换句话说,正在配置初始应用程序状态
  • 用户单击指向“联系人”URL的“显示所有联系人”链接。在这里,我认为应该通过木偶事件(即,表示用户希望看到所有联系人)来处理此修改。毕竟,我们知道用户想要做什么,以及应该显示哪个URL片段。换句话说,路由代码没有理由介入
  • 请注意,这是我的观点,其他开发人员在用户单击链接时只需传递
    trigger:true
    。但正如我在上面的摘录一书中所解释的,这往往会导致开发人员创建“javascript中的无状态应用程序”(例如,在URL中传递大量参数,即使它们应该存储在应用程序的状态中)。毕竟,在默认情况下,主干的
    navigate
    方法具有
    trigger:false
    ,这是有原因的


    德里克·贝利(木偶的创造者)也在这里讨论了这个问题:

    谢谢你的重播。但是你能解释一下路由器的好处是什么吗。我不清楚。从源代码//木偶控制器//----------------////一个多用途对象,用作//模块和路由器的控制器,以及工作流//和其他对象、视图等协调的中介。感谢您的重播。但是你能解释一下路由器的好处是什么吗。我不清楚。来源//木偶