从 RactiveJS 组件触发事件是一种常见的模式吗?

Is firing off events from a RactiveJS components a common pattern?

http://examples.ractivejs.org/comments

上面的例子中有一行:

// fire an event, so we can (for example)
// save the comment to our server
this.fire( 'newComment', comment );

我很好奇这是否是 Ractive 中的常见做法?触发事件而不是触发组件中的 AJAX 请求?或者实例化一些模型对象并对该对象调用#save 方法来触发请求?

这是关注点分离吗?测试?只是简化的示例代码?

var user = new Comment({ text: "text is here", author: "author name" });
user.save()

我唯一能想到的是,通过关闭事件并让其他东西处理它可能会使测试更简单?它有助于关注点分离,但在我看来,这也会让追踪实际处理数据的实际创建者变得更加困难?

在您看来,谁来处理事件的触发?在示例中,您似乎只是将其附加到 "root" ractive 实例并让它在那里处理它?这似乎在现实世界的应用程序中会变得非常完整?

此外,作为他的一个附带问题,您发现自己在实际应用程序中使用 "models" 和 ractive 的频率如何?来自服务器端世界,我很习惯根据 类 和领域模型来思考问题。然而,我所看到的唯一在前端流行的 "model" 库是 Backbone。但是,Backbone 似乎对我的想法有点矫枉过正?

I'm curious if this is a common practice in Ractive? Firing the event rather than shooting of an AJAX request in the component? Or instantiating some model object and calling a #save method on that object to fire off the request?

假设您的应用需要一个 <input> 元素,以便在有人输入内容时通过 AJAX 调用端点。调用 AJAX 的不是 <input>。当事件被触发时,它是挂钩到输入触发的某个已知事件的周围代码,该事件执行 AJAX 。 Ractive 组件具有以这种方式运行所需的设施,但您不一定需要这样做。

how often do you find yourself using "models" with ractive on a real world application?

Ractive 不强加约定。这就是为什么作者更愿意将其称为库而不是框架。您可以使用您认为必要的任何编程模式。我使用 Ractive 的方式与 React 组件的运行方式相同(单向绑定),而且我知道有人将 Ractive 仅用作模板引擎。为您提供的是一组 API 可以做的事情。这取决于你如何使用它。

如果你想知道 Ractive 是否是唯一这样做的,那是不。其他几个框架以一种或另一种形式处理组件:Ember、Angular(指令)、React(Flux + 无状态组件)、Riot、Polymer(Web 组件)。