如果我使用 Meteor,为啥需要 Angular? [关闭]

Posted

技术标签:

【中文标题】如果我使用 Meteor,为啥需要 Angular? [关闭]【英文标题】:Why would I need Angular if I use Meteor? [closed]如果我使用 Meteor,为什么需要 Angular? [关闭] 【发布时间】:2013-11-20 03:07:25 【问题描述】:

Angular 对于构建单页应用程序非常有用。它基本上建立在我们向不同端点发出请求以帮助我们创建更好的单页应用程序的当前范例之上。

另一方面,我们的 Meteor 似乎功能更强大,特别是因为它们具有称为 DDP 的功能,该功能基本上允许双向数据流。 Meteor 似乎是 Angular 的超集,显然是更好的选择。

虽然 Angular 确实提供了一些简洁的功能,例如测试和本地化,但我只是不明白为什么要使用 Angular 和 Meteor 而不是只使用 Meteor。如果我要使用 Meteor,有人可以解释为什么我想使用 Meteor 进行 Angular,甚至使用任何 MV* 前端框架吗?

【问题讨论】:

为什么要在松饼上放一个炒鸡蛋?谁知道,这不是你个人的口味吗? 【参考方案1】:

我们团队当前的大多数应用都是结合这两个框架构建的。

我不会解释我们使用 Meteor 的原因,因为这不是你的问题(尽管我喜欢谈论 Meteor 是多么棒的事)所以我只会谈谈 Angular:

    声明式方法 - AngularJS 是 javascript 框架声明式方法的领导者。由于我们与许多设计师密切合作,我们可以看到他们理解代码是多么容易。使用 AngularJS 还可以更轻松地让新程序员加入我们的团队。 庞大而伟大的生态系统 - Angular 的生态系统令人惊叹。你有 angular-x 的一切。很遗憾不使用它。 现在更容易将它们结合起来 - 我显然有偏见,但我们的团队编写并维护了这个库 - angular-meteor,我们还发布了一个结合两者的教程 - @ 987654322@

顺便说一句 - 当前的正确答案已经过时了。 Meteor 的新模板引擎 (Blaze) 已经发布,非常棒......

【讨论】:

我认为 Angular 的另外两个优点是:测试和依赖注入。 现在我们有了 angular-meteor,问题是你为什么不使用它。【参考方案2】:

两者略有不同。日常工作中最明显的就是绑定。

在 Meteor 中,它有点像 Angular,但没有这个绑定,因为你必须手动完成。如果你使用 Angular,它可以自动绑定到你的 html,然后 Meteor 可以更进一步,将它推送到服务器和其他所有人。

Meteor 也有测试,但它是非官方的。您必须从大气.meteor.com 安装软件包才能使用此额外功能。上面还有很多其他的东西。

要记住的一点是,Meteor 有一个名为 Meteor-UI 的新模板引擎正在开发中,它解决了当前实现 Angular 的许多问题。主要的一个是 DOM 隔离。更多细节在这里:https://github.com/meteor/meteor/wiki/New-Template-Engine-Preview

新的 Meteor-UI 模板引擎实际上比 Angular 更进了一步,因为引入了“控件”的新概念。这意味着您可以使用类似把手的代码添加一个文本框,并让它自动绑定到事件和后端,并进行验证。

对于本地化,package on atmosphere 对此有所帮助。您可以使用车把占位符并根据您要显示的语言替换它们。

这也取决于您的偏好,如果您习惯使用 Angular,它可以创建感觉非常原生的漂亮应用程序。 Meteor 也以不同的方式执行此操作,目前由于绑定,它确实需要更多的工作,但由于 Meteor-UI,它会在接下来的一两个月内发生变化。

【讨论】:

我不明白 Angular 的 HTML 绑定是如何需要的,因为 Meteor 不会自动更新 DOM 吗?您能否详细说明这一点?也许我误解了绑定的真正含义。 它确实更新了 DOM。绑定意味着您必须将文本框绑定到 js 并将占位符绑定到存储值的反应变量。在 Angular 中,您只需添加 ng-xx 标记,它就会为您执行此操作。在流星中,您必须为要绑定的文本框创建一个事件,并为帮助程序的 html 占位符绑定到文本框的内容。 Meteor 会替你换掉 DOM,但 Angular 会换掉 DOM 并根据使用的标签绑定事件。 Meteor 也有助于保持这种反应性,Angular 也是如此。 很好的解释!现在我明白了在 Meteor 前面使用 Angular 的原因了。 这篇文章需要更新吗? 我们现在两全其美,angular-meteor 已经到来【参考方案3】:

我们最近在Meteor vs Angular 上写了一篇文章。我认为 Angular 现在可以作为对 Meteor 的补充,但 Meteor 将继续每天进入与 Angular 相同的前端功能集。

我还要说我在测试方面有点偏见,因为我正在写测试流星书。一项名为 Velocity 的新计划已经启动,它将使 Meteor 的测试场景更加标准化。

【讨论】:

【参考方案4】:

AngularJS 现在从 Meteor v1.2 得到正式支持,并且将它们一起使用是我目前所知道的最强大的解决方案。 http://angular-meteor.com

由于 Meteor 和 AngularJS 字段在 view 部分重叠,真正的问题是使用 AngularJS 作为诱人引擎而不是 Blaze 有什么好处?

AngularJS 通常需要更少的代码来实现相同的结果(更容易和更快的绑定,即使 blaze 擅长它,胶水代码也更少) AngularJS 提供了一种方便的方法来使用类似于本地导入或命名空间的模块来构建代码。即使在 v1.2 中支持 ECMA2015 但hopefully soon covered,这仍然“缺失”。 AngularJS 2.0 将/是 faster 而不是 Blaze,但用于加载 lib 有很多基于AngularJS的templates、libraries和其他framework,远不止Blaze。

【讨论】:

【参考方案5】:

这一切都取决于你。如果您来自角度背景,那么在您的下一个项目中使用它会更容易。 Meteor 是一个完整的框架,带有命令行工具和内置的 Web 服务器,可以在客户端和服务器上用于制作实时应用程序。因此,如果您使用 Meteor,则不需要使用 angular。如果您想了解更多关于 Angular 和 Meteor 的信息,请阅读 FROM CLIENT-SIDE ANGULAR TO SERVER-SIDE METEOR

【讨论】:

【参考方案6】:

Angular 使用更广泛,并且由于其简单性和完整性而非常受欢迎。它的大小很简单,因为它包含所有组件,包括模板、数据绑定等。

虽然我非常喜欢和欣赏 Meteor,但我不确定它是否已准备好迎接黄金时段。 Meteor 中的许多概念还没有在实际生产应用程序中应用。例如,在客户端拥有 mongoDB lite 可能是一个巨大的优势,也可能是一个很大的负面影响。

我会根据 Angular 的就绪性、简单性和完整性来选择它。 Meteor 在黄金时段准备就绪时值得进行真正的评估。

【讨论】:

这是一个非常不知情的“答案”。

以上是关于如果我使用 Meteor,为啥需要 Angular? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Angular2-meteor - 在订阅函数中使用排序的 find() 后未定义的变量

流星 1.3 和 Angular 1

angular-meteor 根据参数查找 MongoDb 集合并返回

alanning:role,在 angular2-meteor 中导入问题

找不到模块'./..../x.html' - TsLint / Angular-Meteor

Meteor Angular UI.Router 链接的语法要求是啥?