Angular、React和Blaze(客户端Meteor)之间的主要设计差异是什么?

33

我已经多次看到关于Angular vs. React vs. Meteor的问题。在Meteor方面,对于这个问题的答案不可避免地是如何解释Meteor在范围上更大(具有DDP、部署、所有服务器端东西和它提供的所有其他内容)。

我想将这个问题限制在Blaze引擎和它们有所重叠的地方,尤其是其中任何一个可能在编写或结构化客户端代码方面提供额外的功能和/或能力的地方。

  • 它们之间互补的地方在哪里?(例如,https://github.com/lvbreda/Meteor_angularjs带来了什么)
  • 假设上面提到的带来某些优势,如果使用纯Meteor,如何进行补偿?
  • 鉴于Angular鼓励在客户端对MVC的代码进行相当严格的分离,应该如何在Meteor中结构良好的客户端代码以遵循其MVVM模式?(它只是从具有模板、客户端模块和模型中自然产生吗)

1
请看这里:http://stackoverflow.com/questions/14658659/advantages-of-meteor-js-over-angular-js-node-js - Michael
所选链接中的答案特别讨论了Node.js,而这明确不是我所询问的(Angular没有提供任何服务器端功能,因此Meteor和Angular在这方面没有重叠)。 - funkyeah
我认为这是一个好问题,我不明白为什么它被认为是“太宽泛”的。 - Benjamin Crouzier
2个回答

18

根据我的理解,你有三个不同的问题:

它们在哪些方面互补?(例如,https://github.com/lvbreda/Meteor_angularjs 带来了什么)

AngularJS是一个全栈客户端框架,为前端开发带来了许多功能。

它相比于标准的Meteor,提供以下优势:

假设上述内容提供了某些优势,如果使用纯Meteor如何进行补偿?

如果您使用纯Meteor,则可以使用几乎所有可能的客户端库,例如jQuery,或手动编写一些像Angular的方便函数,例如表单验证。

鉴于Angular在客户端方面鼓励相当严格的MVC代码分离,如何在Meteor中构建良好的MVVM模式的客户端代码结构?(它只是从模板、客户端模块和模型固有地产生吗)

有许多方法可以组织您的代码。Meteor在代码组织方面没有那么多偏见。您可以使用http://docs.meteor.com/#structuringyourapp作为指导,但真正取决于您喜欢编码的方式。您可以将代码拆分为不同的文件夹中的不同文件,也可以将所有内容放入一个大文件中。对于非常小的应用程序,我更喜欢将所有内容放在一个文件中。

我喜欢将我的代码分成两个文件夹:

  • 用于客户端的文件夹(子文件夹,例如视图和资源,有时是一个很好的选择)
  • 用于服务器端的文件夹
如果您正在寻找一些好的实践经验,那么您也可以查看 http://telesc.pe/ 的源代码:https://github.com/SachaG/Telescope

在 Meteor 中,组件和/或指令的等效物是什么? - funkyeah
如果您能对Meteor中的组件/指令提供一些类似于Angular的等效物(或者在概念上如何创建它们),我一定会授予奖励。 - funkyeah
你可以创建自己的标签,然后通过自己的JavaScript进行修改,或者编写模板部分,在应用程序中的多个位置使用。你明白了吗? ;) - Bijan
好的,所以没有官方等效功能,可能有很多实现等效功能的方法?!看起来指令在处理第三方库等方面具有更强大的功能,Meteor可以从某些东西中受益,这些东西将功能封装在保留或隔离中,以便渲染引擎不会影响它。(我走对了吗?) - funkyeah
@funkyeah 我认为你可以在 Meteor 中使用模板(HTML + 相应的 JS 文件)代替指令。但我不是太确定。 - Benjamin Crouzier

6

该页面上已经不存在那个部分了。我刚在那个代码库中搜索了“Angular”,并找到了一些关于它的不同之处的简短说明。 - Kyle Suss
Meteor和Angular在REST API、模板系统、组件和工具方面有许多相似之处和差异。详情请参见此处 - 从客户端Angular到服务器端Meteor - ep4f

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接