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

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

本文关键字:一种 常见 模式 组件 RactiveJS 事件      更新时间:2023-09-26

http://examples.ractivejs.org/comments

上面的例子中有一行:

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

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

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

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

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

在你看来,谁来处理这次事件的解雇?在这个例子中,看起来你只是把它钉在"根"实用实例上,然后让它在上面处理它?在现实世界的应用程序中,它似乎会变得非常满?

此外,作为他的一个附带问题,你发现自己在现实世界的应用程序中使用"模型"和ractive的频率有多高?来自服务器端的世界,我非常习惯于从类和域模型的角度来思考问题。然而,我看到的唯一一个在前端流行的"模型"库是Backbone。然而,Backbone似乎有点高估了我的想法?

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

假设您的应用程序需要一个<input>元素,以便在有人输入内容时通过AJAX调用端点。调用AJAX的不是<input>。正是周围的代码钩住了一些已知的事件,这些事件是由在事件被触发时执行AJAX的输入触发的。Racive组件提供了以这种方式运行所需的设施,但您不一定需要这样做。

你发现自己在现实世界的应用程序中使用带有ractive的"模型"的频率是多少?

种族歧视并没有强加一个惯例。这就是为什么作者更喜欢称之为库而不是框架的原因。您可以使用任何您认为必要的编程模式。我使用Racive的方式与React组件的操作方式相同(单向绑定),我知道有人只将Racive用作模板引擎。你所提供的是一套API来做一些事情。这取决于你如何使用它。

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

相关文章: