Meteor的火焰和Famo.us如何一起玩?

Fla*_*ken 12 javascript meteor famo.us meteor-blaze

2技术:

  • 流星与火焰模板引擎
  • Famo.us拥有令人敬畏的gui框架

我来自流星边,我个人喜欢使用{{mustache}}(把手)从数据驱动gui,反应式会话/数据库使这真的高效和直观.

现在来了famo.us及其所有优点,但基于代码的gui的缺点是不再有把手的地方......

  • 将两种技术混合在一起的当前做法是什么?
  • 他们完全分离吗?
  • 使用"观察"/"Deps.autorun"机制是一个常见的做法,一个famo.us元素将被流星反应项目更新?

gad*_*icc 16

我刚刚发布了一个着名组件的预览版,这是Blaze和Famous之间紧密集成的尝试.到目前为止,我见过的所有其他方法都是Blaze的大部分步骤,并且需要在JavaScript中编写大量代码,这在Meteor中对我来说感觉非常不自然.流星代码应该小巧,简洁,易于获得强大的结果.下面是一些示例:(每个模板形成一个renderNode,任何HTML都放在Surface上.修饰符/视图/选项被指定为组件属性)

<template name="test">
  {{#Surface size=reactiveSizeHelper}}
    <p>hello there</p>
  {{/Surface}}

  {{#if loggedIn}}
    {{>SequentialLayout template='userBar' direction="X"}}
  {{else}}
    {{>Surface template='pleaseLogIn' origin="[0.5,0.5]"}}
  {{/if}}
</template>
Run Code Online (Sandbox Code Playgroud)

Scrollview(可以拆分为子模板):

<template name="famousInit">
  {{#Scrollview size="[undefined,undefined]"}}
    {{#famousEach items}}
      {{#Surface size="[undefined,100]"}}{{name}}{{/Surface}}
    {{/famousEach}}
  {{/Scrollview}}
</template>

Template.famousInit.items = function() { return Items.find() };
Run Code Online (Sandbox Code Playgroud)

事件:

Template.blockSpring.events({
  'click': function(event, tpl) {
    var fview = FView.fromTemplate(tpl);
    fview.modifier.setTransform(
      Transform.translate(Math.random()*500,Math.random()*300),
      springTransition
    );
  }
});
Run Code Online (Sandbox Code Playgroud)

它还可以使用铁制路由器.更多详情,文档,现场演示,全部在 http://famous-views.meteor.com/