2015-01-12 30 views
1

我刚刚从MeteorJS开始,来自ReactJS和AngularJS,我发现一个空洞,我觉得可重用的组件应该是。流星模板对于重复使用和重复大量代码似乎很不错,但特殊按钮,日期选择器等事情呢?我应该在流星之上使用这些框架吗?这与Blaze如何契合?关于这个问题,甚至会发生什么呢?或者我仅限于在template.rendered函数中初始化的jquery插件(aka bootstrap)?用流星构建可重用组件?

谢谢

+1

欢迎来到流星。对于像datepickers这样的插件,你可以通过https://atmospherejs.com/ – ajduke

+0

找到软件包管理器并找到软件包。我想我在这里开了个好头。在main.html的第14行查看我的[Meteorpad](http://meteorpad.com/pad/rxXfamARBBFt6wpFZ/Directives)。 –

回答

0

Blaze强制您使用jQuery来执行动态DOM操作。通过ReactJS,DOM可以通过它的状态和道具进行操作,调试和编写起来更容易。 ReactJS避免了jQuery汤,它更容易理解你的代码。

但是我花了几个小时试图获得一个在Meteor工作的多文件ReactJS应用程序,仍然没有运气。 react-meteor包仅适用于单个JSX文件,并在使用Meteor包含的Android构建工具构建Android时引发错误。我提交的问题https://github.com/reactjs/react-meteor/issues

我不明白为什么你不能使用Blaze偏分量来构建单个按钮或日期选择器。即

{{> custom-button }}

在这个问题上,甚至会发生什么呢?

Blaze让你的客户端/浏览器不必每隔X秒轮询一次服务器,看看客户端/ DOM中是否有变化。

我的理解与ReactJS和你是否仍然需要轮询服务器,除非你使用ReactJS与流星。因此,如果您在客户端上安装了带有ReactJS的Express服务器,则需要轮询更改或使用Socket.io,而对于不平凡的应用程序则使用Flux。流星会简化胶水/ plubming ...如果我只能得到它的工作!

0

您可以使用Blaze Components软件包。 (我是作者之一)。它在Blaze之上提供了一个扩展,为您提供了可重用和可扩展的组件。

我还想声明@巨人麋鹿的答案是不正确的。 Blaze不会强迫你使用jQuery来进行动态操作。我甚至会声称这和React是一样的。关键是你应该创建你自己关心的反应状态,然后在模板助手中使用它来决定显示什么,然后离开Blaze进行渲染和动态修改。所以这个想法是,你有一个你定义和修改的被动状态,并且你声明了该状态应该如何呈现,然后Blaze会小心地根据该状态呈现DOM,并且在状态改变时自动更新DOM 。

它与查询服务器没有任何关系。反应性来自何处取决于您的代码。它可以来自服务器端文档的发布端点,也可以来自客户端的其他反应性来源。重点是状态(通常是Blaze中的数据上下文)发生变化,Blaze基于此更新DOM。是的,状态可以来自服务器,然后你必须关心它是如何从服务器进行更新和维护的。但这是流星的本质,而不是Blaze本身。