Angular、React 和 Blaze(客户端 Meteor)之间的主要设计差异? [关闭]

Posted

技术标签:

【中文标题】Angular、React 和 Blaze(客户端 Meteor)之间的主要设计差异? [关闭]【英文标题】:Major design differences between Angular, React, and Blaze (client-side Meteor)? [closed] 【发布时间】:2013-05-19 09:28:06 【问题描述】:

我已经多次看到 Angular 与 React 与 Meteor 的问题。在流星方面,这个问题的答案不可避免地是对流星范围更大的解释(具有 DDP、部署、所有服务器端的东西,以及它提供的所有其他东西)。

我想将此问题仅限于 Blaze 引擎以及它们确实有些重叠的东西,尤其是其中任何一个都可能在编写或构建客户端代码方面提供额外的特性和/或能力。

它们在哪里互补? (例如,https://github.com/lvbreda/Meteor_angularjs 带来了什么) 假设以上带来了一定的优势,如果使用纯流星,你如何弥补? 鉴于 Angular 鼓励对 MVC 客户端上的代码进行相当严格的分离,应该如何在流星中构建客户端上的良好代码以遵循其 MVVM 模式? (它是不是天生就有模板、客户端模块和模型)

【问题讨论】:

看这里***.com/questions/14658659/… 该链接中的选定答案专门讨论了 node.js,这显然不是我要询问的内容(角度不提供任何服务器端功能,因此流星和角度在这方面不重叠)跨度> 我认为这是一个很好的问题,我不明白为什么它是“广泛的”。 【参考方案1】:

好吧,据我所知,您要问三个不同的问题:

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

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

它为标准流星上面的表格带来了以下内容:

测试:Angular 为客户端提供了完整的测试框架 表单验证 本地化 组件(例如:http://angular-ui.github.io/)

假设上述带来了一定的优势,如果使用纯流星,你如何弥补?

如果您使用的是纯流星,您可以使用几乎所有可能的客户端库,例如 jQuery,或者您可以从 Angular 编写一些方便的函数,例如手动进行表单验证。

鉴于 Angular 鼓励在 MVC 客户端上对代码进行相当严格的分离,应该如何在流星中构建客户端上的良好代码以遵循其 MVVM 模式? (它是不是天生就有模板、客户端模块和模型)

有很多方法可以构建您的代码。 Meteor 对代码组织没有那么固执。您可以使用http://docs.meteor.com/#structuringyourapp 作为您的指导,但这实际上取决于您喜欢如何编码。可以将代码拆分为文件夹中的不同文件,也可以将所有内容放入一个大文件中。对于非常小的应用程序,我更喜欢将所有内容保存在一个文件中。

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

用于存放客户端内容的文件夹(Views 和 Assets 等子文件夹有时是不错的选择) 服务器端的文件夹

如果您正在寻找一个好的做法,那么您还可以查看http://telesc.pe/ 源代码:https://github.com/SachaG/Telescope

【讨论】:

什么相当于流星中的组件和/或指令? 关于meteor 中的等价物与角度的组件/指令(或概念上您可能如何制作)的一些cmet,我一定会奖励赏金 您可以创建自己的标签,然后通过您自己的 javascript 进行修改,或者您可以编写可在您的应用中的多个位置使用的模板部分。你明白吗? ;) 好的,所以没有官方的等价物,并且可能有很多实现等价功能的方法?!似乎指令在使用 3rd 方库等方面具有更大的能力,并且流星可以受益于将功能封装在保留或隔离中的东西,以便渲染引擎不会影响它。 (我在正确的轨道上吗?) @funkyeah 我想说你可以用流星中的模板(html +相应的js文件)替换指令。但我不太确定。【参考方案2】:

Abigail Watson 在她的 Meteor 食谱中对 Meteor 与其他 MVC 框架之间的关系进行了很好的总结:

https://github.com/awatson1978/meteor-cookbook

向下滚动到“模型、视图、控制器”部分。

【讨论】:

该部分不再存在于该页面上。我刚刚在那个 repo 中搜索了“Angular”,发现了一些关于它的不同之处。 Meteor 和 Angular 在 REST API、模板系统、组件和工具方面有很多相同点和不同点。详情见这里 - FROM CLIENT-SIDE ANGULAR TO SERVER-SIDE METEOR

以上是关于Angular、React 和 Blaze(客户端 Meteor)之间的主要设计差异? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

在新数据到达 Meteor 时对其进行动画处理

Meteor + Blaze - If else 语句

使用 Meteor 和 blaze 在掌上电脑上正确加载数据

使用 Blaze 和空格键访问 Meteor 应用程序中的嵌套对象

为什么我们从Angular 2迁移到Vue.js(为什么我们没有选择React)

带有 Meteor 的 Blaze-Apollo,观察者不会触发变量更改的订阅