{
  "version": "https://jsonfeed.org/version/1", 
  "title": "Meteor", 
  "description": "Meteor: the realtime JavaScript framework that's going to change the way you build web applications.", 
  "home_page_url": "https://www.v2ex.com/go/meteor", 
  "feed_url": "https://www.v2ex.com/feed/meteor.json", 
  "icon": "https://cdn.v2ex.com/navatar/d64a/340b/530_large.png?m=1414522195", 
  "favicon": "https://cdn.v2ex.com/navatar/d64a/340b/530_normal.png?m=1414522195", 
  "items": [
    {
      "author": {
        "url": "https://www.v2ex.com/member/qile1", 
        "name": "qile1", 
        "avatar": "https://cdn.v2ex.com/gravatar/03b6474fdca2de3813a9860d19acdaf8?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/462633", 
      "title": "meteor \u66f4\u65b0 1.7 \u540e\u662f\u4e0d\u662f\u539f\u6765\u9879\u76ee\u65e0\u6cd5\u5728\u65b0\u7248\u672c\u8fd0\u884c\u4e86", 
      "id": "https://www.v2ex.com/t/462633", 
      "date_published": "2018-06-12T16:19:25+00:00", 
      "content_html": "<p>\u6211\u770b\u5b98\u65b9\u6559\u7a0b\u53ca\u901a\u7528\u6559\u7a0b\u597d\u50cf\u90fd\u65e0\u6cd5\u76f4\u63a5\u8fd0\u884c\n\u6709\u7684\u63d0\u793a\u6570\u636e\u5e93\u6240\u5728\u6587\u4ef6\u7cfb\u7edf nfs \u6ca1\u6709\u9501\u673a\u5236\u8fd8\u662f\u4e0d\u652f\u6301\u9501</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/firstfeel", 
        "name": "firstfeel", 
        "avatar": "https://cdn.v2ex.com/gravatar/85a30e7ba9d1ee80f9767cf8f19504cc?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/332614", 
      "title": "Meteor \u5728\u56fd\u5185\u65e0\u6cd5\u5b89\u88c5\u5305\u600e\u4e48\u529e\uff1f", 
      "id": "https://www.v2ex.com/t/332614", 
      "date_published": "2017-01-06T02:32:53+00:00", 
      "content_html": "<p>\u6211\u4f7f\u7528\u7684\u662f\u963f\u91cc\u4e91\u670d\u52a1\u5668\u3002\u662f\u53ef\u4ee5\u5b89\u88c5 Meteor \u6846\u67b6\u7684\uff0c\u4f46\u5728\u521b\u5efa\u5e94\u7528\u5e76 Meteor update \u65f6\uff0c\u6216\u8005\u5b89\u88c5 flow-router \u7b49\u5305\u65f6\uff0c\u5b8c\u5168\u5361\u4f4f\uff0c\u5b89\u88c5\u4e0d\u4e86\u3002</p>\n<p>\u5404\u4f4d\u5927\u795e\uff0c\u8bf7\u6559\u5982\u4f55\u89e3\u51b3\u6b64\u95ee\u9898, \u8c22\u8c22\uff01</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/firstfeel", 
        "name": "firstfeel", 
        "avatar": "https://cdn.v2ex.com/gravatar/85a30e7ba9d1ee80f9767cf8f19504cc?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/325696", 
      "title": "\u5f3a\u70c8\u5efa\u8bae\u3001\u8981\u6c42\u559c\u6b22 Meteor \u7684\u540c\u5b66\u4eec\u4e00\u8d77\u641e\u4e2a Meteor \u793e\u533a\u5427", 
      "id": "https://www.v2ex.com/t/325696", 
      "date_published": "2016-12-06T08:20:54+00:00", 
      "content_html": "<p>\u8fd9\u4e00\u65f6\u95f4\u8ff7\u4e0a\u4e86 Meteorjs \u6846\u67b6\u3002\u4e00\u8fb9\u770b <a href=\"http://docs.meteor.com\" rel=\"nofollow\">docs.meteor.com</a> \u3001 <a href=\"http://guide.meteor.com\" rel=\"nofollow\">guide.meteor.com</a> \uff0c\u540c\u65f6\u4e5f\u5728\u770b Meteor in Action \uff0c Getting Started with Meteor.js JavaScript Framework, Second Edition \u7b49\u4e66\u3002</p>\n<p>\u540c\u65f6\u53c8\u5f88\u5b64\u72ec\uff0c\u60f3\u4ea4\u6d41\u3001\u5b66\u4e60\uff0c\u5374\u6ca1\u6709\u5730\u65b9\u3002 <a href=\"http://meteorhub.org\" rel=\"nofollow\">meteorhub.org</a> \u51e0\u4e4e\u6253\u4e0d\u5f00\uff0c\u56fd\u5185\u4f3c\u4e4e\u4e5f\u6ca1\u6709\u793e\u533a\u53ef\u4ee5\u53bb\u4e0a\u9762\u5b66\u4e60\u7684\u3002\u540e\u6765\u81ea\u5df1\u8349\u8349\u5f04\u4e86\u4e2a\u7f51\u7ad9 <a href=\"https://www.ameteor.com\" rel=\"nofollow\">https://www.ameteor.com</a> \u3002</p>\n<p>\u771f\u8bda\u7684\u5e0c\u671b\u6709\u559c\u6b22 Meteor \u7684\u670b\u53cb\uff0c\u53ef\u4ee5\u4e00\u8d77\u505a\u4e00\u4e0b\u8fd9\u4e2a\u4e8b\u60c5\uff0c \u5c31\u662f\u5f04\u4e2a\u9ad8\u8d28\u91cf\u7684 Meteor \u793e\u533a\u7f51\u7ad9\uff0c\u8ba9\u66f4\u591a\u559c\u6b22 Meteor \u7684\u670b\u53cb\u53ef\u4ee5\u805a\u5728\u5730\u4e00\u8d77\u5b66\u4e60\u3001\u4ea4\u6d41\u3002</p>\n<p>\u8c22\u8c22\u5927\u5bb6\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/russj", 
        "name": "russj", 
        "avatar": "https://cdn.v2ex.com/avatar/1592/2281/27571_large.png?m=1490880089"
      }, 
      "url": "https://www.v2ex.com/t/291316", 
      "title": "Meteor Mantra \u4ecb\u7ecd", 
      "id": "https://www.v2ex.com/t/291316", 
      "date_published": "2016-07-09T03:15:33+00:00", 
      "content_html": "<p>Mantra \u662f\u4e00\u79cd\u57fa\u4e8e Meteor 1.3+\u3001 React \u548c ES2015 \u7684\u5e94\u7528\u7a0b\u5e8f\u67b6\u6784\u3002\u5b83\u4e0d\u662f\u4e00\u4e2a\u6846\u67b6\uff0c\u800c\u662f\u4e00\u5957\u5982\u4f55\u6784\u5efa Meteor App \u7684\u6807\u51c6\uff0c\u540c\u65f6\u4e5f\u6709\u4e00\u5957\u76f8\u5173\u5f00\u6e90\u5e93\u6765\u63d0\u9ad8\u4ee3\u7801\u7f16\u5199\u6548\u7387\u3002</p>\n<p>\u7b80\u5355\u6765\u8bf4\uff0c Mantra \u662f\u5173\u4e8e\u5982\u4f55\u7ec4\u7ec7\u4f60\u7684 Meteor \u5e94\u7528\u4ee3\u7801\u7684\u6807\u51c6\uff0c\u7279\u522b\u662f\u524d\u7aef\u90e8\u5206 (\u57fa\u4e8e React)\uff0c\u5f53\u7136\u5b83\u5bf9\u540e\u7aef\u4ee3\u7801\u7684\u7ec4\u7ec7\u4e5f\u6709\u8981\u6c42\u3002</p>\n<p>\u5982\u679c\u4f60\u719f\u6089 React \uff0c Mantra \u7c7b\u4f3c\u4e8e Flux \uff0c\u8bb2\u7a76\u7684\u662f\u5bf9\u6570\u636e\u6d41\u7684\u63a7\u5236\uff0c\u4f46\u662f\u89c4\u5b9a\u5f97\u66f4\u52a0\u7ec6\u81f4\u3002</p>\n<h3>\u76ee\u7684</h3>\n<p>Mantra \u7684\u76ee\u7684\u662f\u8ba9\u7a0b\u5e8f\u5199\u51fa\u66f4\u6613\u4e8e\u7406\u89e3\u548c\u7ef4\u62a4\u7684\u4ee3\u7801\u3002\u5b83\u5bf9\u51e0\u4e4e\u6240\u6709\u7684\u60c5\u51b5\u90fd\u6709\u4e00\u4e2a\u6807\u51c6\uff0c\u53e6\u5916\u8fd8\u4e3a Meteor App \u589e\u52a0\u5355\u5143\u6d4b\u8bd5\u8986\u76d6\u7387\u3002</p>\n<p>\u548c Perl \u7c7b\u4f3c\uff0c JavaScript \u7684\u4e00\u4e2a\u96be\u70b9\u5c31\u662f\u540c\u6837\u4e00\u4e2a\u95ee\u9898\u6709\u592a\u591a\u5b9e\u73b0\u65b9\u5f0f\uff0c\u800c\u4e14\u53ef\u80fd\u90fd\u662f\u6700\u4f73\u89e3\u51b3\u65b9\u6848\u3002\u6240\u4ee5\u7ecf\u5e38\u662f\u4e0d\u540c\u7684\u4eba\u4f7f\u7528\u4e0d\u540c\u7684\u65b9\u6cd5\u3002 Mantra \u8ba9 Meteor App \u6709\u4e00\u4e2a\u7edf\u4e00\u7684\u7ed3\u6784\uff0c\u9075\u5faa\u76f8\u540c\u7684\u6807\u51c6\uff0c\u5c31\u50cf\u8bbe\u8ba1\u6a21\u5f0f\u4e00\u6837\uff0c\u964d\u4f4e\u5927\u5bb6\u7406\u89e3\u4ee3\u7801\u7ed3\u6784\u7684\u96be\u5ea6\uff0c\u786e\u4fdd\u6a21\u5757\u4e4b\u95f4\u89e3\u8026\uff0c\u50cf Flux \u4e00\u6837\u8ba9\u6570\u636e\u5355\u5411\u6d41\u52a8\uff0c\u8fd9\u6837\u7ef4\u62a4\u4ee3\u7801\u66f4\u52a0\u5bb9\u6613\u3002</p>\n<p>Mantra \u4f7f\u7528\u7684\u539f\u5219\u5f88\u6709\u524d\u77bb\u6027\uff0c\u80fd\u591f\u5f88\u957f\u65f6\u95f4\u4e0d\u4f1a\u8fc7\u65f6\uff0c\u540c\u65f6\u4e5f\u5141\u8bb8\u5176\u4ed6\u4eba\u505a\u5fc5\u8981\u7684\u6539\u53d8\u3002</p>\n<h3>\u504f\u91cd\u524d\u7aef</h3>\n<p>\u73b0\u5728\u7684 Web App \u7684\u5927\u90e8\u5206\u4ee3\u7801\u90fd\u662f\u5728\u524d\u7aef\u3002\u540e\u7aef\u7684\u4ee3\u7801\u903b\u8f91\u76f8\u5bf9\u7b80\u5355\u4e5f\u597d\u7ba1\u7406\uff0c\u540e\u7aef\u7684\u96be\u70b9\u5728\u4e8e\u6027\u80fd\u4f18\u5316\uff0c\u7279\u522b\u662f\u5927\u5e76\u53d1\u7684\u5904\u7406\uff0c\u6570\u636e\u5e93\u7b49\u3002</p>\n<p>Mantra \u7684\u6838\u5fc3\u5728\u5982\u4f55\u7ec4\u7ec7\u5ba2\u6237\u7aef\u4ee3\u7801\u3002\u5b83\u5021\u5bfc\u524d\u540e\u7aef\u4ee3\u7801\u5206\u79bb\uff0c\u524d\u7aef\u4e0d\u7528\u77e5\u9053\u540e\u7aef\u4ee3\u7801\u662f\u5982\u4f55\u5b9e\u73b0\u7684\uff0c\u4f46\u662f\u53ef\u4ee5\u4ee3\u7801\u5171\u4eab\u3002\u56e0\u4e3a\u662f\u57fa\u4e8e React \u53c8\u4fa7\u91cd\u524d\u7aef\uff0c\u6240\u4ee5 Mantra \u5f88\u7c7b\u4f3c React \u7684\u90a3\u4e9b\u6807\u51c6\uff0c\u4f8b\u5982 Flux \uff0c Redux \u7b49\uff0c\u89e3\u51b3\u7684\u95ee\u9898\u4e5f\u7c7b\u4f3c\uff0c\u90fd\u662f\u63a7\u5236\u6570\u636e\u6d41 data flow \uff0c\u8ba9\u4ee3\u7801\u66f4\u6613\u7406\u89e3\u7ef4\u62a4\u3002\u5982\u679c\u4f60\u5bf9 React \u719f\u6089\uff0c\u7406\u89e3 Mantra \u5c31\u4e0d\u96be\u3002\u5982\u679c\u7406\u89e3\u6709\u56f0\u96be\uff0c\u5efa\u8bae\u591a\u770b\u770b React \u7684\u9ad8\u7ea7\u7528\u6cd5\uff0c\u4f8b\u5982 stateless/pure function \uff0c Higher Order Components \u7b49\u3002</p>\n<p>Mantra \u4e0d\u76f8\u4fe1 Universal App \uff0c\u5c31\u662f\u4e0d\u76f8\u4fe1\u4e00\u5957\u524d\u7aef\u4ee3\u7801\u9002\u5e94\u6240\u6709\u7ec8\u7aef\u5e73\u53f0\u3002\u5b83\u9f13\u52b1\u4e00\u5957\u540e\u7aef\u4ee3\u7801\uff0c\u4f46\u662f\u4e3a\u6bcf\u4e2a\u524d\u7aef\u5e73\u53f0\u5f00\u53d1\u5355\u72ec\u7684 app \u6765\u63d0\u9ad8\u7528\u6237\u4f53\u9a8c\uff0c\u5c3d\u91cf\u901a\u8fc7\u6a21\u5757\u5316\u6765\u5171\u4eab\u4ee3\u7801\u3002</p>\n<hr>\n<p>\u5176\u4ed6 Mantra \u7684\u57fa\u672c\u4ecb\u7ecd\u53ef\u4ee5\u53c2\u770b\u8fd9\u7bc7\u4e2d\u6587\u7ffb\u8bd1 <a href=\"http://www.jianshu.com/p/96d6b8e64c3a\" rel=\"nofollow\">http://www.jianshu.com/p/96d6b8e64c3a</a></p>\n<p>\u4e0b\u9762\u6211\u6765\u8be6\u7ec6\u89e3\u91ca Mantra \u7684\u5404\u4e2a\u90e8\u4ef6\u3002</p>\n<hr>\n<p>\u8fd9\u91cc\u4ecb\u7ecd\u7684\u987a\u5e8f\u548c\u6587\u6863\u91cc\u7684\u4e0d\u4e00\u6837\uff0c\u4e3b\u8981\u662f\u5148\u4ece\u65b0\u7684\u6982\u5ff5\u4ecb\u7ecd\uff0c\u4e0d\u7136\u5bf9\u5df2\u7ecf\u719f\u6089\u7684\u4e5f\u96be\u7406\u89e3\u3002</p>\n<h2>Application Context</h2>\n<p>\u5e94\u7528\u4e0a\u4e0b\u6587 context \u5bf9\u6240\u6709 action \u548c container \u5f00\u653e\u8bfb\u53d6\uff0c\u6240\u4ee5\u8fd9\u662f\u4f60\u5206\u4eab\u53d8\u91cf\u7684\u5730\u65b9\u3002</p>\n<pre><code>import * as Collections from '/lib/collections';\nimport {Meteor} from 'meteor/meteor';\nimport {FlowRouter} from 'meteor/kadira:flow-router';\nimport {ReactiveDict} from 'meteor/reactive-dict';\nimport {Tracker} from 'meteor/tracker';\n\nexport default function () { \n  return { \n    Meteor, \n    FlowRouter, \n    Collections, \n    LocalState: new ReactiveDict(), \n    Tracker \n  };\n}\n</code></pre>\n<p>\u4ece\u4e0a\u9762\u4f8b\u5b50\u4e2d\u53ef\u4ee5\u770b\u51fa\uff0c context \u53ef\u4ee5\u8ba9\u5927\u5bb6\u5c11\u5199\u91cd\u590d\u7684\u4ee3\u7801\uff0c\u53c8\u53ef\u4ee5\u5728\u4e0d\u540c\u6a21\u5757\u4e4b\u95f4\u5206\u4eab\u53d8\u91cf\u3002</p>\n<h2>Actions</h2>\n<p>\u5904\u7406\u4e1a\u52a1\u903b\u8f91\u7684\u6a21\u5757\u3002\u5305\u62ec\u9a8c\u8bc1\uff0c\u72b6\u6001\u7ba1\u7406\u548c\u8fdc\u7a0b\u6570\u636e\u4ea4\u4e92\u3002</p>\n<p>Action \u5c31\u662f\u4e00\u4e2a\u7b80\u5355\u7684\u51fd\u6570\u800c\u5df2\uff0c\u7b2c\u4e00\u4e2a\u53c2\u6570\u5fc5\u987b\u662f\u5e94\u7528\u7684\u4e0a\u4e0b\u6587 Context \u3002 Action \u4e0d\u5f97\u4f7f\u7528\u5f15\u5165\u9664\u4e86\u53c2\u6570\u4ee5\u5916\u7684\u4efb\u4f55\u53d8\u91cf\u548c\u6a21\u5757\uff0c\u751a\u81f3\u5168\u5c40\u53d8\u91cf\uff0c\u4f46\u662f\u53ef\u4ee5\u4f7f\u7528\u5e93\u51fd\u6570\u3002</p>\n<pre><code>export default { \n  create({Meteor, LocalState, FlowRouter}, title, content) { \n    if (!title || !content) { \n      return LocalState.set('SAVING_ERROR', 'Title &amp; Content are required!'); \n    } \n\n    LocalState.set('SAVING_ERROR', null); \n\n    const id = Meteor.uuid(); \n    // There is a method stub for this in the config/method_stubs \n    // That's how we are doing latency compensation \n    Meteor.call('posts.create', id, title, content, (err) =&gt; { \n      if (err) { \n        return LocalState.set('SAVING_ERROR', err.message); \n      } \n    }); \n    FlowRouter.go(`/post/${id}`); \n  }, \n  clearErrors({LocalState}) { \n    return LocalState.set('SAVING_ERROR', null); \n  }\n};\n\n</code></pre>\n<h2>UI</h2>\n<p>Mantra \u53ea\u4f7f\u7528 React \u4f5c\u4e3a UI \u7ec4\u4ef6\u3002</p>\n<p>\u5728 UI \u7ec4\u4ef6\u5185\u90e8\u4e0d\u9700\u8981\u77e5\u9053 App \u7684\u5176\u4ed6\u4efb\u4f55\u5185\u5bb9\uff0c\u4e5f\u4e0d\u5e94\u8be5\u8bfb\u53d6\u548c\u4fee\u6539\u5e94\u7528\u7684 state \u3002 UI \u4f7f\u7528\u5230\u7684\u6570\u636e\u548c\u4e8b\u4ef6\u5e94\u8be5\u7531 props \u4ece container \u4f20\u5165\uff0c\u6216\u8005\u901a\u8fc7\u4e8b\u4ef6\u4f5c\u4e3a action props \u4f20\u5165\u3002\u5982\u679c UI \u7ec4\u4ef6\u4f7f\u7528\u5230\u672c\u5730 state \uff0c\u90a3\u4e48\u8fd9\u4e2a state \u4e0d\u5e94\u8be5\u88ab\u5916\u90e8\u7684\u4efb\u4f55\u7ec4\u4ef6\u4f7f\u7528\uff0c\u4ec5\u9650\u4e8e\u7ec4\u4ef6\u5185\u90e8\u4f7f\u7528\u3002</p>\n<p>Mantra \u6587\u6863\u91cc\u7ed9\u51fa\u7684\u4ee3\u7801\u793a\u4f8b:</p>\n<pre><code>import React from 'react';\n\nconst PostList = ({posts}) =&gt; ( \n  &lt;div className='postlist'&gt; \n    &lt;ul&gt; \n      {posts.map(post =&gt; ( \n        &lt;li key={post._id}&gt; \n          &lt;a href={`/post/${post._id}`}&gt;{post.title}&lt;/a&gt; \n       &lt;/li&gt; ))} \n    &lt;/ul&gt; \n  &lt;/div&gt;\n);\n\nexport default PostList;\n</code></pre>\n<p>\u4e0a\u9762\u7684\u4f8b\u5b50\u4ee3\u7801\u5c31\u662f React \u91cc\u7684\u65e0\u72b6\u6001\u7eaf\u51fd\u6570\u5b9e\u73b0\uff0c UI \u53ea\u8d1f\u8d23\u5c55\u793a\u754c\u9762\uff0c\u6ca1\u6709\u903b\u8f91\u3001\u72b6\u6001\u7b49\u5904\u7406\u3002</p>\n<h2>State \u7ba1\u7406</h2>\n<p>\u6709\u4e24\u79cd\u72b6\u6001:\u672c\u5730\u72b6\u6001\uff08\u5ba2\u6237\u7aef\uff09\u548c\u8fdc\u7a0b\u72b6\u6001\uff08\u670d\u52a1\u5668\uff09\u3002\u672c\u5730\u72b6\u6001\u4e0d\u548c\u5916\u754c\u53d1\u751f\u8054\u7cfb\uff1b\u8fdc\u7a0b\u72b6\u6001\u9700\u8981\u548c\u5916\u754c\uff0c\u4f8b\u5982\u6570\u636e\u5e93\u540c\u6b65\u6570\u636e\u3002</p>\n<p>\u7c7b\u4f3c Flux \u91cc\u7684 store \u6982\u5ff5 \uff08\u53ef\u53c2\u8003 <a href=\"http://jinglei.me/meteor-react/\" rel=\"nofollow\">\u4f7f\u7528 Meteor \u548c React \u5f00\u53d1 Web App\n</a>\uff09\uff0c Meteor \u6709\u4e0d\u540c\u7684\u65b9\u5f0f\u5b9e\u73b0\uff0c\u4f8b\u5982 MiniMongo \uff0c ReactiveDict \u7b49\u3002 Mantra \u5728\u8fd9\u65b9\u9762\u5f88\u7075\u6d3b\uff0c\u6ca1\u6709\u8981\u6c42\u7528\u54ea\u4e00\u79cd\u3002\u4f46\u662f\u8fd8\u662f\u6709\u4e00\u4e9b\u89c4\u5219</p>\n<ul>\n<li>Action \u91cc\u53ef\u4ee5\u8bfb\u5199 state</li>\n<li>Container \u91cc\u53ea\u80fd\u8bfb state</li>\n<li>UI \u7ec4\u4ef6\u91cc\u65e2\u4e0d\u80fd\u8bfb\u4e5f\u4e0d\u80fd\u5199 state \uff0c\u53ea\u80fd\u7531 props \u4f20\u5165</li>\n</ul>\n<h2>Dependency Injection \u4f9d\u8d56\u6ce8\u5165</h2>\n<p>\u9996\u5148\uff0c\u4ec0\u4e48\u662f\u4f9d\u8d56\uff1f Mantra \u6709\u4e24\u79cd\u4f9d\u8d56</p>\n<ol>\n<li>context - \u901a\u5e38\u5c31\u662f\u914d\u7f6e\uff0c models \u548c\u5404\u79cd\u6570\u636e</li>\n<li>actions - \u4e1a\u52a1\u903b\u8f91\u3002\u6bcf\u4e2a action \u90fd\u4ee5 context \u4e3a\u7b2c\u4e00\u4e2a\u53c2\u6570</li>\n</ol>\n<p>\u4f8b\u5982:</p>\n<pre><code>const context = { \n  DB, \n  Router, \n  appName: 'My Blog'\n};\n\nconst actions = { \n  posts: { \n    create({DB, Router}, title, content) { \n      const id = String(Math.random()); \n      DB.createPost(id, title, content); \n      Router.go(`/post/${id}`); \n    } \n  }\n};\n</code></pre>\n<p>\u7136\u540e\u6ce8\u5165\u4f9d\u8d56\u3002 Mantra \u4f7f\u7528 <a href=\"https://github.com/kadirahq/react-simple-di\" rel=\"nofollow\">react-simple-di</a> \u8fd9\u4e2a\u5305\u6765\u8fdb\u884c\u4f9d\u8d56\u6ce8\u5165\u3002\u80cc\u540e\u5176\u5b9e\u5c31\u662f React context \u3002\u8fd9\u4e2a\u5305\u63a5\u53d7 Context \u548c Actions \u4f5c\u4e3a\u4f9d\u8d56\u3002</p>\n<pre><code>import {injectDeps} from 'react-simple-di';\nimport Layout from './layout.jsx';\n\n// \u4e0a\u9762\u5b9a\u4e49\u7684 context \u548c actions \u5b9a\u4e49\u5728\u8fd9\u91cc\n\nconst LayoutWithDeps = injectDeps(context, actions)(Layout);\n</code></pre>\n<p>\u73b0\u5728 <code>LayoutWithDeps</code> \u5c31\u53ef\u4ee5\u5728 app \u91cc\u968f\u610f\u4f7f\u7528\u4e86\u3002</p>\n<p>\u5982\u4f55\u4f7f\u7528\u4f9d\u8d56\uff1f</p>\n<p>\u9996\u5148\u521b\u5efa\u4e00\u4e2a UI \u7ec4\u4ef6\u3002\u53ef\u4ee5\u770b\u5230\u8fd9\u4e2a\u7ec4\u4ef6\u7684\u4f9d\u8d56\u662f\u901a\u8fc7 props \u4f20\u5165\u7684</p>\n<pre><code>class CreatePost extends React.Component { \n  render() { \n    const {appName} = this.props; \n    return ( \n      &lt;div&gt; \n        Create a blog post on app: ${appName}. &lt;br/&gt; \n        &lt;button onClick={this.create.bind(this)}&gt;Create Now&lt;/button&gt; \n      &lt;/div&gt;  \n    ); \n  } \n\n  create() { \n    const {createPost} = this.props; \n    createPost('My Blog Title', 'Some Content'); \n  }\n}\n</code></pre>\n<p>\u4f7f\u7528\u4f9d\u8d56</p>\n<pre><code>const {useDeps} from 'react-simple-di';\n\n// \u524d\u9762\u5b9a\u4e49\u7684 CreatePost react \u7ec4\u4ef6 \n\nconst depsToPropsMapper = (context, actions) =&gt; ({ \n  appName: context.appName, \n  createPost: actions.posts.create\n});\n\nconst CreatePostWithDeps = useDeps(depsToPropsMapper)(CreatePost);\n</code></pre>\n<p>\u5982\u679c\u4f60\u6ca1\u6709\u5b9a\u4e49\u81ea\u5df1\u7684 mapper \u51fd\u6570\uff08\u5c31\u662f\u4e0a\u9762\u7684 depsToPropsMapper \uff09\uff0c useDeps \u5c06\u4f7f\u7528\u4e0b\u9762\u7684\u9ed8\u8ba4 mapper \u51fd\u6570\uff0c\u8fd9\u6837\u5c31\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528 context \u548c actions \u4e86\u3002</p>\n<pre><code>const mapper = (context, actions) =&gt; ({ \n  context: () =&gt; context, \n  actions: () =&gt; actions\n});\n</code></pre>\n<p>Mantra \u4f7f\u7528\u4f9d\u8d56\u6ce8\u5165\u7684\u76ee\u7684\u662f\u9694\u79bb\u4ee3\u7801\u3002\u4f8b\u5982\u9694\u79bb UI \u7ec4\u4ef6\u548c actions \u3002</p>\n<p>\u4e00\u65e6\u914d\u7f6e\u597d\uff0c Applicaton Context \u5c31\u4f1a\u88ab\u6ce8\u5165\u5230\u628a Context \u4f5c\u4e3a\u7b2c\u4e00\u53c2\u6570\u7684 action \u3002</p>\n<p>Container \u540c\u6837\u4e5f\u80fd\u8bfb\u53d6 Application Context \u3002</p>\n<p>\u4e0d\u80fd\u5728\u5b50\u7ec4\u4ef6\u91cc\u6ce8\u5165\u4f9d\u8d56\uff0c\u53ea\u80fd\u662f\u6700\u4e0a\u5c42\u7ec4\u4ef6\uff0c\u901a\u5e38\u5c31\u662f Layout Component \uff0c\u4f8b\u5982\u4e0b\u9762\u4ee3\u7801\u3002</p>\n<pre><code>import React from 'react';\nexport default function (injectDeps) { \n  // See: Injecting Deps \n  const MainLayoutCtx = injectDeps(MainLayout); \n  // Routes related code\n}\n</code></pre>\n<h2>Container</h2>\n<p>Container \u7684\u4f5c\u7528\u662f\u96c6\u6210\u3001\u7ec4\u88c5\u6570\u636e\u3002\u5b83\u7684\u4e2d\u6587\u610f\u601d\u662f\u5bb9\u5668\uff0c\u91cc\u9762\u5305\u88f9\u7684\u5c31\u662f UI \u7ec4\u4ef6\u3002\u4e3b\u8981\u529f\u80fd:</p>\n<ul>\n<li>\u5904\u7406 state \uff0c\u5904\u7406\u540e\u628a\u503c\u901a\u8fc7 props \u4f20\u5165 UI \u7ec4\u4ef6</li>\n<li>\u628a action \u4f20\u5165 UI \u7ec4\u4ef6</li>\n<li>\u628a\u5e94\u7528 Context \u4f20\u5165 UI \u7ec4\u4ef6</li>\n</ul>\n<p>Container \u662f\u4e00\u4e2a React \u7ec4\u4ef6\u3002\u5982<a href=\"http://jinglei.me/meteor-react/\" rel=\"nofollow\">\u8fd9\u7bc7\u6587\u7ae0</a>\u6240\u8ff0\u7684 Controller-View</p>\n<p><img alt=\"Flux\" src=\"http://upload-images.jianshu.io/upload_images/1053877-6a8585804eaca476.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240\"></p>\n<p>\u5982\u4e0a\u56fe\u6240\u793a\uff0c\u4f7f\u7528\u4e00\u4e2a\u7236\u7ec4\u4ef6\uff0c\u5c31\u662f Mantra \u7684 container \u6765\u76d1\u542c\u6570\u636e\u7684\u53d8\u5316\uff0c\u5b50\u7ec4\u4ef6 UI Component \u8d1f\u8d23\u754c\u9762\u6e32\u67d3\u548c\u4e92\u52a8\u3002 Controller \u5c31\u662f\u9ad8\u9636\u7ec4\u4ef6 (Higher Order Components) HOC \u6765\u5305\u88f9 UI \u7ec4\u4ef6\u3002\u9ad8\u9636\u7ec4\u4ef6\u8d1f\u8d23\u6570\u636e\u67e5\u8be2\uff0c\u5b50\u7ec4\u4ef6\u8d1f\u8d23\u6e32\u67d3\u7b49\u3002</p>\n<p>Mantra \u4f7f\u7528 <a href=\"https://github.com/kadirahq/react-komposer\" rel=\"nofollow\">react \u2010 komposer</a> \u6765\u4f5c\u4e3a container \u83b7\u53d6\u6570\u636e\u72b6\u6001\u3002</p>\n<p>container \u7684\u89c4\u5219</p>\n<ul>\n<li>\u6bcf\u4e2a jsx \u6587\u4ef6\u53ea\u80fd\u6709\u4e00\u4e2a container \uff0c\u800c\u4e14\u8fd9\u4e2a container \u5e94\u8be5\u662f\u9ed8\u8ba4 export</li>\n<li>composer \u548c mapper \u51fd\u6570\u5e94\u8be5\u4ece container \u6a21\u5757\u8f93\u51fa</li>\n<li>composer \u51fd\u6570\u53ea\u80fd\u4f7f\u7528\u4ece props \u8f93\u5165\u7684\u503c</li>\n<li>mapper \u5e94\u8be5\u662f\u7eaf\u51fd\u6570</li>\n</ul>\n<blockquote>\n<p>Note: \u57fa\u4e8e Mantra Draft 0.2.0</p>\n</blockquote>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/livedutvchina", 
        "name": "livedutvchina", 
        "avatar": "https://cdn.v2ex.com/gravatar/dfb391929e4e68df8c44796699685cc4?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/290651", 
      "title": "\u4f7f\u7528 Meteor \u5f00\u53d1\u4e00\u4e2a\u793e\u4ea4\u7f51\u7edc APP", 
      "id": "https://www.v2ex.com/t/290651", 
      "date_published": "2016-07-06T07:18:47+00:00", 
      "content_html": "<p>\u548c\u5927\u5bb6\u5206\u4eab\u4e00\u4e2a\u89c6\u9891\uff1a</p>\n<p><a href=\"https://www.livecoding.tv/johncarmack/videos/nDnyw-startup-with-meteor-for-a-social-web-app\" rel=\"nofollow\">https://www.livecoding.tv/johncarmack/videos/nDnyw-startup-with-meteor-for-a-social-web-app</a></p>\n<p>\u9879\u76ee\u8fd8\u5728\u5f00\u53d1\u4e2d\uff0c\u5927\u5bb6\u53ef\u4ee5\u53bb\u770b\u4ed6\u7684\u76f4\u64ad\u6216\u89c6\u9891\u3002</p>\n<p>\u4e3b\u8981\u4f7f\u7528\u7684\u7f16\u7a0b\u8bed\u8a00\uff1a Javascript / HTML 5 / CSS3</p>\n<p>\u4f7f\u7528\u7684\u5305\uff0c\u5e93\u548c API \uff1a Meteor.js and React.js</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/lizunlong", 
        "name": "lizunlong", 
        "avatar": "https://cdn.v2ex.com/avatar/cede/bb6e/183_large.png?m=1334370998"
      }, 
      "url": "https://www.v2ex.com/t/278218", 
      "title": "\u9762\u5411 \u5c0f\u767d\u5f00\u53d1\u8005 \u548c \u4e13\u4e1a\u5f00\u53d1\u8005 \u7684 Meteor", 
      "id": "https://www.v2ex.com/t/278218", 
      "date_published": "2016-05-12T09:01:42+00:00", 
      "content_html": "<ol>\n<li><a href=\"https://mp.weixin.qq.com/s?__biz=MzIyODM0MzgyMA==&amp;mid=2247483714&amp;idx=1&amp;sn=4614ab089cc08feda4e9f93ccd380098\" rel=\"nofollow\">\u5c0f\u767d\u5f00\u53d1\u8005</a> // \u89e3\u91ca\u4e86 Meteor \u4e3a\u4ec0\u4e48\u8981\u5148\u8fce\u5408\u5c0f\u767d\u5f00\u53d1\u8005\u3002</li>\n<li><a href=\"https://mp.weixin.qq.com/s?__biz=MzIyODM0MzgyMA==&amp;mid=2247483717&amp;idx=1&amp;sn=f5b4b9f7b36ef986399b2d19256aa1ac\" rel=\"nofollow\">\u4e13\u4e1a\u5f00\u53d1\u8005</a> // \u9080\u8bf7\u4e13\u4e1a\u5f00\u53d1\u8005\u56e2\u961f\u5bf9 Meteor \u91cd\u65b0\u8fdb\u884c\u5ba1\u89c6\u4e0e\u8bc4\u4f30\u3002</li>\n</ol>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/lizunlong", 
        "name": "lizunlong", 
        "avatar": "https://cdn.v2ex.com/avatar/cede/bb6e/183_large.png?m=1334370998"
      }, 
      "url": "https://www.v2ex.com/t/277505", 
      "title": "Meteor \u521b\u59cb\u4eba\u773c\u4e2d\u7684\u8ba1\u7b97\u7ec8\u7aef\u53d1\u5c55\u7b80\u53f2", 
      "id": "https://www.v2ex.com/t/277505", 
      "date_published": "2016-05-10T00:22:43+00:00", 
      "content_html": "<p>V2EX \u9996\u53d1\uff0c\u672c\u6587\u5c06\u4e8e\u4eca\u665a\u63a8\u9001\u81f3\u6211\u7684\u5fae\u4fe1\u516c\u4f17\u53f7\u8ba2\u9605\u8005\u3002</p>\n<p><a href=\"https://lizunlong.com/note/website-history.html\" rel=\"nofollow\">\u4e00\u5468\u524d</a>\uff0c\u6211\u4ece\u7f51\u7ad9\u5f00\u53d1\u7684\u6280\u672f\u53d1\u5c55\u8fd9\u4e00\u89d2\u5ea6\u8bb2\u660e Meteor \u65e8\u5728\u5e2e\u52a9\u6211\u4eec\u7f16\u5199\u51fa\u5e94\u8fd0\u65f6\u4ee3\u6f6e\u6d41\u7684\u7f51\u7ad9\u3002\u4eca\u5929\uff0c\u6211\u8bd5\u7740\u8f6c\u8ff0 Meteor \u521b\u59cb\u4eba\u4e4b\u4e00 Geoff Schmidt \u773c\u4e2d\u7684\u8ba1\u7b97\u7ec8\u7aef\u53d1\u5c55\u7b80\u53f2\u3002\u5bf9\u6bd4\u7740\u770b\uff0c\u4e5f\u53ef\u4ee5\u770b\u51fa\u4e00\u4e2a\u4eba\u770b\u5f85\u4e8b\u7269\u7684\u89d2\u5ea6\u57fa\u672c\u51b3\u5b9a\u4e86\u4ed6\u505a\u4e8b\u7684\u683c\u5c40\u3002</p>\n<p><img alt=\"Mainframe - PC - Web - Apps\" src=\"http://ww3.sinaimg.cn/mw690/a1480181jw1f3pyuocr9rj20zk0k043i.jpg\"></p>\n<p><a href=\"https://en.wikipedia.org/wiki/Mainframe_computer\" rel=\"nofollow\">Mainframe</a> \u662f\u4ec0\u4e48\u4e1c\u897f\uff1f\u5927\u578b\u4e3b\u673a\u3002\u4e0d\u8fc7\u5728\u8fd9\u91cc\u5b83\u7279\u6307\u4e0a\u4e16\u7eaa\u516d\u4e03\u5341\u5e74\u4ee3\u7684\u5927\u578b\u8ba1\u7b97\u673a\uff0c\u5b83\u4f53\u79ef\u5e9e\u5927\uff0c\u8ba1\u7b97\u5904\u7406\u80fd\u529b\u8fdc\u4e0d\u53ca\u73b0\u4eca\u7684 iPhone \u624b\u673a\u3002\u624b\u673a\u63e1\u4e8e\u624b\u638c\uff0c Mainframe \u5462\uff0c\u4e00\u95f4\u6559\u5ba4\u90fd\u672a\u5fc5\u653e\u5f97\u4e0b\u4e00\u53f0\u3002\u7136\u800c\uff0c\u5b83\u4ecd\u7136\u610f\u4e49\u6df1\u8fdc\uff0c\u56e0\u4e3a\u5b83\u5177\u6709\u8ba1\u7b97\u5904\u7406\u80fd\u529b\uff0c\u8fd9\u662f\u4e00\u5207\u672a\u6765\u53d1\u5c55\u7684\u6839\u57fa\u3002</p>\n<p>PC \u8fd9\u4e2a\u7f29\u5199\u5927\u5bb6\u80af\u5b9a\u719f\u6089\uff0c\u4e2a\u4eba\u8ba1\u7b97\u673a\u3002\u5b83\u7684\u610f\u4e49\u5728\u4e8e\u4f53\u79ef\u7684\u5927\u5e45\u7f29\u5c0f\uff0c\u4ee5\u53ca\u6210\u672c\u7684\u5927\u5e45\u964d\u4f4e\u3002\u7834\u574f\u6027\u521b\u65b0\u6307\u5c06\u73b0\u6709\u7684\u9700\u8981\u8f83\u9ad8\u6d88\u8d39\u80fd\u529b\u624d\u80fd\u4eab\u7528\u7684\u4e8b\u7269\u6216\u670d\u52a1\u901a\u8fc7\u521b\u65b0\u65b9\u5f0f\u91cd\u65b0\u6253\u5305\u4e3a\u9002\u7528\u4e8e\u666e\u7f57\u5927\u4f17\u6d88\u8d39\u7684\u5546\u54c1\u7684\u884c\u4e3a\uff0c<a href=\"https://lizunlong.com/note/discovering-meteor.html\" rel=\"nofollow\">\u91cd\u590d\u5373\u91cd\u8981</a>\u3002\u51e0\u5343\u7f8e\u5143\uff0c\u4e00\u5f20\u684c\u5b50\uff0c\u4fbf\u53ef\u62e5\u6709\u4e00\u53f0\u8ba1\u7b97\u6548\u7387\u8fdc\u8d85\u4eba\u7c7b\u7684\u4e2a\u4eba\u7535\u8111\u3002\u5f53\u65f6\u7684\u73b0\u72b6\u662f\uff0c\u5de5\u5177\u51fa\u73b0\u4e86\uff0c\u4f46\u4eba\u4eec\u8fd8\u4e0d\u592a\u6e05\u695a\u80fd\u5229\u7528\u5b83\u5b9e\u73b0\u4ec0\u4e48\u3002</p>\n<p>\u76f4\u81f3\u8f6f\u4ef6\u4e1a\u53d1\u5c55\u8d77\u6765\u3002\u56fe\u5f62\u754c\u9762\u5141\u8bb8\u975e\u4e13\u4e1a\u4eba\u58eb\u4e0e\u51b7\u51b0\u51b0\u7684\u7535\u8111\u8fdb\u884c\u4ea4\u4e92\u64cd\u4f5c\uff0c\u4ece\u800c\u5e2e\u52a9\u66f4\u591a\u7684\u4eba\u4f7f\u7528\u8ba1\u7b97\u673a\u5b9e\u73b0\u4ed6\u4eec\u7684\u9700\u6c42\uff0c\u6ca1\u9519\uff0c\u53c8\u4e00\u6b21\u7834\u574f\u6027\u521b\u65b0\u3002\u4e2a\u4eba\u8ba1\u7b97\u673a\u7684\u4f7f\u7528\u8005\u5177\u5907\u4e86\u8d85\u4eba\u7684\u8ba1\u7b97\u80fd\u529b\uff0c\u4f46\u662f\u5462\uff0c\u6570\u636e\u4ea4\u6362\u8fd8\u65e0\u6cd5\u6446\u8131\u5730\u7406\u9694\u79bb\uff0c\u6700\u591a\u662f\u7528\u8f6f\u76d8\u643a\u5e26\u7740\u6709\u9650\u7684\u6570\u636e\u5f80\u6765\u4e8e\u4e66\u623f\u548c\u529e\u516c\u5ba4\u3002</p>\n<p>\u76f4\u81f3\u4e92\u8054\u7f51\u7684\u666e\u53ca\u3002\u5168\u7403\u7ecf\u6d4e\u3001\u6587\u5316\u7684\u53d1\u5c55\u901f\u5ea6\u4f9d\u8d56\u4e8e\u4f4e\u5ef6\u8fdf\u7684\u4fe1\u606f\u9001\u8fbe\u3002\u4ece\u5954\u8dd1\uff0c\u5230\u9a91\u9a6c\uff1b\u4ece\u7535\u62a5\uff0c\u5230\u4e92\u8054\u7f51\u3002\u4e0d\u4ec5\u5168\u7403\u8303\u56f4\u5185\u4fe1\u606f\u9001\u8fbe\u51e0\u8fd1\u4e3a\u96f6\u5ef6\u8fdf\uff0c\u800c\u4e14\u80fd\u591f\u627f\u8f7d\u8d8a\u6765\u8d8a\u4e30\u5bcc\u7684\u6570\u636e\u3002\u4ece\u6587\u672c\u5230\u89c6\u9891\uff0c\u4ece\u5373\u65f6\u804a\u5929\u5230\u7f51\u7edc\u76f4\u64ad\uff0c\u6ca1\u6709\u4e92\u8054\u7f51\u57fa\u7840\u8bbe\u65bd\u7684\u5efa\u8bbe\uff0c\u76f8\u5173\u7684\u670d\u52a1\u5c31\u4e0d\u53ef\u80fd\u5b9e\u73b0\u3002</p>\n<p>\u4ece\u8fd9\u91cc\uff0c\u6211\u7684\u90a3\u7bc7\u7f51\u7ad9\u53d1\u5c55\u7b80\u53f2\u5c31\u7b97\u662f\u80fd\u63a5\u4e0a\u4e86\uff0c\u6211\u77e5\u9053\u4f60\u61d2\u5f97\u770b\uff0c\u8fd9\u91cc\u7b80\u5355\u9648\u8ff0\u4e00\u4e0b\u5927\u610f\u3002\u4e92\u8054\u7f51\u8ba9\u6570\u636e\u4ea4\u6362\u6709\u4e86\u7a81\u7834\u5730\u7406\u9694\u79bb\u7684\u4f18\u52bf\uff0c\u7ed3\u5408\u62e5\u6709\u8d85\u9ad8\u8ba1\u7b97\u80fd\u529b\u7684\u670d\u52a1\u5668\uff0c\u7f51\u7ad9\u5f00\u53d1\u66f4\u503e\u5411\u4e8e\u5411\u8bbf\u95ee\u8005\u7684\u6d4f\u89c8\u5668\u4f20\u8f93\u8ba1\u7b97\u540e\u7684\u7ed3\u679c\u2014\u2014 HTML \uff1b\u73b0\u5982\u4eca\uff0c\u8bbf\u95ee\u8005\u7684\u7ec8\u7aef\u2014\u2014\u5305\u62ec\u4e2a\u4eba\u8ba1\u7b97\u673a\u548c\u624b\u673a\u2014\u2014\u8ba1\u7b97\u80fd\u529b\u8d8a\u6765\u8d8a\u5f3a\uff0c\u6709\u4eba\u5f00\u59cb\u8003\u8651\u76f4\u63a5\u5411\u8bbf\u95ee\u8005\u7684\u6d4f\u89c8\u5668\u4f20\u8f93\u6570\u636e\uff0c\u8ba9\u6d4f\u89c8\u5668\u83b7\u5f97\u6570\u636e\u540e\u5728\u672c\u5730\u8fdb\u884c\u8ba1\u7b97\u548c\u6e32\u67d3\uff0c\u8fd9\u4e00\u8f6c\u53d8\u5141\u8bb8\u7f51\u7ad9\u5f00\u53d1\u8005\u5f00\u53d1\u51fa<a href=\"https://lizunlong.com/note/is-meteor-right-for-this-website.html\" rel=\"nofollow\">\u4ea4\u4e92\u66f4\u590d\u6742\u7684\u7f51\u7ad9</a>\uff0c\u8fd9\u4e00\u70b9\u6211\u5728\u4e0a\u5468\u5df2\u7ecf\u4e3e\u8fc7\u4f8b\u5b50\u4e86\uff0c\u5305\u62ec<a href=\"https://lizunlong.com/note/OSS-by-meteor.html\" rel=\"nofollow\">\u5f00\u6e90\u9879\u76ee</a>\u548c<a href=\"https://lizunlong.com/note/business-by-meteor.html\" rel=\"nofollow\">\u5546\u4e1a\u7f51\u7ad9</a>\u3002</p>\n<p>Meteor \u7684\u6982\u5ff5\u6b63\u662f\u5728\u8fd9\u4e00\u5927\u80cc\u666f\u4e0b\u63d0\u51fa\u7684\uff0c\u540c\u65f6 Meteor \u56e2\u961f\u4e5f\u5728\u8fd9\u56db\u5e74\u5185\u505a\u5230\u4e86\uff0c\u5e76\u4e14\u672a\u6765\u8fd8\u4f1a\u671d\u7740\u66f4\u5f00\u653e\u7684\u65b9\u5411\u53d1\u5c55\u3002\u4ece\u5927\u578b\u4e3b\u673a\uff0c\u5230\u4e2a\u4eba\u7535\u8111\uff1b\u4ece\u4e92\u8054\u7f51\uff0c\u5230\u79fb\u52a8\u5e94\u7528\u3002\u7ec8\u7aef\u7684\u4f53\u79ef\u4e0d\u65ad\u7f29\u5c0f\uff0c\u6210\u672c\u4e0d\u65ad\u964d\u4f4e\uff0c\u5904\u7406\u80fd\u529b\u4e0d\u65ad\u63d0\u9ad8\uff0c\u6570\u636e\u4ea4\u6362\u4e0d\u518d\u53d7\u5730\u7406\u9694\u79bb\uff0c\u8fd9\u4e00\u5207\u4e00\u5207\u7684\u57fa\u7840\u6761\u4ef6\u9884\u793a\u7740\u592a\u591a\u7684\u53ef\u80fd\u6027\uff0c\u76f4\u81f3\u76f8\u5e94\u7684\u8f6f\u4ef6\u4e1a\u518d\u4e00\u6b21\u53d1\u5c55\u8d77\u6765\u3002</p>\n<p>\u76f8\u4e92\u8fde\u63a5\u7684\u79fb\u52a8\u8bbe\u5907\u662f\u672a\u6765\u7ec8\u7aef\u7684\u7edd\u5bf9\u4e3b\u529b\uff0c\u5b83\u4eec\u6108\u52a0\u4fbf\u643a\u3001\u4fbf\u5b9c\uff0c\u8fd9\u4e00\u8d8b\u52bf\u5219\u4f1a\u6108\u52a0\u51f8\u73b0\u3002 Meteor \u73b0\u5df2\u80fd\u591f\u5168\u65b9\u4f4d\u5730\u652f\u6301\u8fd9\u4e00\u8d8b\u52bf\uff0c\u5e76\u5c06\u6301\u7eed\u8fdb\u5316\u4ee5\u5e94\u5bf9\u751f\u6001\u73af\u5883\u7684\u7a81\u53d8\u3002</p>\n<p>\u5ef6\u4f38\u9605\u8bfb\uff1a<a href=\"https://lizunlong.com/note/weekly-2.html\" rel=\"nofollow\">\u7b2c 2 \u5468\u56de\u987e (2016/5/2 - 5/8)</a></p>\n<p>\u6b22\u8fce\u8ba2\u9605\u6211\u7684\u5fae\u4fe1\u516c\u4f17\u53f7\uff1a\u4e24\u4e2a\u5706\u70b9\u4e00\u6761\u76f4\u7ebf - <a href=\"http://v2ex.com/t/275760#reply5\" rel=\"nofollow\">/t/275760</a></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/lizunlong", 
        "name": "lizunlong", 
        "avatar": "https://cdn.v2ex.com/avatar/cede/bb6e/183_large.png?m=1334370998"
      }, 
      "url": "https://www.v2ex.com/t/276464", 
      "title": "\u6211\u6700\u8fd1\u5149\u8bf4 Meteor \u7684\u597d\u8bdd\u4e86\uff0c\u4e3a\u4e86\u66f4\u597d\u7684\u770b\u6e05\u4e8b\u7269\u6b63\u53cd\u9762\uff0c\u8bf7\u5927\u5bb6\u5e2e\u5fd9\u6765\u4f7f\u52b2\u513f\u62cd\u3001\u5410\u69fd Meteor \u5427~", 
      "id": "https://www.v2ex.com/t/276464", 
      "date_published": "2016-05-05T03:49:26+00:00", 
      "content_html": "<p>\u597d\u8bdd\u5728\u8fd9\uff1a<a href=\"https://v2ex.com/t/275760\" rel=\"nofollow\">/t/275760</a></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/lizunlong", 
        "name": "lizunlong", 
        "avatar": "https://cdn.v2ex.com/avatar/cede/bb6e/183_large.png?m=1334370998"
      }, 
      "url": "https://www.v2ex.com/t/275760", 
      "title": "\u4e00\u4e2a\u56f4\u7ed5 Meteor \u7684\u5fae\u4fe1\u516c\u4f17\u53f7\uff1a\u4e24\u4e2a\u5706\u70b9\u4e00\u6761\u76f4\u7ebf", 
      "id": "https://www.v2ex.com/t/275760", 
      "date_published": "2016-05-02T02:36:39+00:00", 
      "content_html": "<p>\u6211\u4e00\u5468\u524d\u521a\u521a\u5f00\u901a\u7684\uff0c\u4e3a\u8282\u7701\u5927\u5bb6\u65f6\u95f4\uff0c\u63a8\u8350\u5148\u770b\u770b<a href=\"https://lizunlong.com/note/weekly-1.html\" rel=\"nofollow\">\u9996\u5468\u56de\u987e</a>\u3002</p>\n<p>\u611f\u5174\u8da3\u7684\u53ef\u4ee5 <a href=\"https://lizunlong.com/atom.xml\" rel=\"nofollow\">RSS</a> \u8ba2\u9605\uff0c\u4e5f\u53ef\u4ee5\u53bb\u5fae\u4fe1\u641c\u7d22 \u4e24\u4e2a\u5706\u70b9\u4e00\u6761\u76f4\u7ebf \u8ba2\u9605\u5173\u6ce8\u3002</p>\n<p>\u5982\u679c\u4f60\u4ee5\u524d\u5173\u6ce8\u8fc7\u5e76\u653e\u5f03\u4e86 Meteor \uff0c\u8bf7\u544a\u8bc9\u6211\u4f60\u7684\u7591\u8651\uff0c\u6211\u53ef\u4ee5\u6839\u636e\u5176\u73b0\u72b6 (1.3 \u7248\u672c) \u548c\u5df2\u77e5\u7684\u672a\u6765\u53d1\u5c55\u65b9\u5411\u8fdb\u884c\u56de\u7b54\uff0c\u8ba9\u6211\u4eec\u91cd\u65b0\u8bc4\u4f30\u4e00\u4e0b Meteor \u5230\u5e95\u9002\u4e0d\u9002\u5408\u81ea\u5df1\u7684\u65b0\u9879\u76ee\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/maodouwang", 
        "name": "maodouwang", 
        "avatar": "https://cdn.v2ex.com/gravatar/3d39c719e0f85c31c47ffb6f9f2c2ebd?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/259944", 
      "title": "\u7b2c\u4e00\u5c4a\uff08 2016\uff09\u4e2d\u56fd Meteor \u6280\u672f\u5cf0\u4f1a", 
      "id": "https://www.v2ex.com/t/259944", 
      "date_published": "2016-02-29T09:05:52+00:00", 
      "content_html": "<p>\u65f6\u95f4\uff1a 2016 \u5e74 3 \u6708 6 \u65e5 14:00~18:30<br>\n\u5730\u70b9\uff1a\u6e05\u534e\u5927\u5b66 FIT \u697c\u4e8c\u697c\u591a\u529f\u80fd\u5385<br>\n\u4e3b\u529e\u65b9\uff1a\u6bdb\u8c46\u7f51\u5728\u7845\u8c37 Meteor \u603b\u90e8\u7684\u7684\u5173\u5207\u548c\u6307\u5bfc\u4e0b\uff0c\u4e3e\u529e 2016 \u5e74\u7b2c\u4e00\u5c4a Meteor \u6280\u672f\u5cf0\u4f1a\uff0c\u66a8\u6bdb\u8c46\u7f51\u5f00\u53d1\u8005\u4ea4\u6d41\u4f1a\u3002<br>\n\u62a5\u540d\u94fe\u63a5\uff1a <a target=\"_blank\" rel=\"nofollow\" href=\"http://t.cn/RGMhohc\">http://t.cn/RGMhohc</a></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/ifuture", 
        "name": "ifuture", 
        "avatar": "https://cdn.v2ex.com/avatar/2950/5089/160644_large.png?m=1686134119"
      }, 
      "url": "https://www.v2ex.com/t/259253", 
      "date_modified": "2021-10-05T18:29:57+00:00", 
      "content_html": "<p>meteor \u6846\u67b6\u9002\u5408\u7528\u5728\u4e92\u8054\u7f51\u7c7b\u5e73\u53f0\u5417\uff0c\u6709\u54ea\u4e9b\u6210\u529f\u7684\u6848\u4f8b\u6216\u8005\u5f00\u6e90\u9879\u76ee\u53ef\u4ee5\u5b66\u4e60</p>\n", 
      "date_published": "2016-02-26T04:00:25+00:00", 
      "title": "meteor \u6846\u67b6\u9002\u5408\u7528\u5728\u4e92\u8054\u7f51\u7c7b\u5e73\u53f0\u5417", 
      "id": "https://www.v2ex.com/t/259253"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/my101du", 
        "name": "my101du", 
        "avatar": "https://cdn.v2ex.com/avatar/cfaa/f68b/30180_large.png?m=1756193491"
      }, 
      "url": "https://www.v2ex.com/t/252759", 
      "title": "\u5206\u4eab\uff1a\u6700\u8fd1\u5728\u5b66 Meteor \u7ed3\u5408 React\uff0c\u4f7f\u7528 FlowRouter \u505a\u8def\u7531\u548c react-layout \u5e03\u5c40\uff0c\u4ee5\u53ca Semantic-UI \u754c\u9762", 
      "id": "https://www.v2ex.com/t/252759", 
      "date_published": "2016-01-22T16:04:31+00:00", 
      "content_html": "<p>\u4e4b\u524d\u5728\u516c\u53f8\u6253\u6742\u7684\uff0c\u56e0\u4e3a\u505a\u7684\u4e8b\u592a\u6742\uff0c\u6240\u4ee5\u4e0d\u5f97\u4e0d\u7ecf\u5e38\u5b66\u4e00\u4e9b\u4e1c\u897f\uff08\u4f46\u662f\u4e5f\u7231\u597d\uff0c\u5475\u5475\uff09\u3002</p>\n\n<p>\u6700\u8fd1\u6709\u4e00\u4e2a\u8feb\u5207\u7684\u538b\u529b\u8ba9\u6211\u5c3d\u5feb\u5b66\u4e60 Meteor \u7ed3\u5408 React \uff08\u4ee5\u53ca\u5176\u4ed6\u76f8\u5173\u524d\u7aef\u7684\u6280\u672f\uff09\uff0c\u8fd9\u5bf9\u4e00\u4e2a\u53ea\u4f1a jQuery \uff0c\u5bf9\u524d\u7aef\u5404\u79cd\u706b\u70ed\u6280\u672f\u53ea\u662f\u521d\u6b65\u4e86\u89e3\u7684\u4eba\u6765\u8bf4\uff0c\u771f\u662f\u6bd4\u8f83\u5927\u7684\u6311\u6218\u2014\u2014\u5305\u62ec\u601d\u7ef4\u4e0a\u7684\u6539\u53d8\u548c\u514b\u670d\u7ecf\u9a8c\u7684\u4e0d\u8db3\u3002</p>\n\n<p>\u4e8e\u662f\u767d\u5929\u7ee7\u7eed\u6253\u6742\u642c\u670d\u52a1\u5668\uff0c\u88c5\u7535\u8bdd\u7ebf\u2026\u2026\u665a\u4e0a\u770b\u8d44\u6599\uff0c\u6572\u4ee3\u7801\uff0c\u5e78\u597d\u6709\u9886\u8def\u4eba\u7ed9\u4e86\u4e0d\u5c11\u8d44\u6599\uff0c\u5927\u5927\u51cf\u5c11\u4e86\u5b66\u4e60\u65f6\u95f4\u3002</p>\n\n<p>\u6211\u53d1\u73b0\u7f51\u4e0a\u5206\u522b\u8bb2 meteor \u3001 react \u7b49\u7684\u8d44\u6599\u90fd\u633a\u591a\u7684\uff0c\u4f46\u8c8c\u4f3c\u8fd8\u6ca1\u6709\u627e\u5230\u4e00\u7bc7\u4e2d\u6587\u7684\uff0c\u5e76\u4e14\u4e13\u95e8\u8bb2\u5982\u4f55\u628a\u8fd9\u4e9b\u6280\u672f\u7ed3\u5408\u8d77\u6765\u7684\u6587\u7ae0\uff0c\u6240\u4ee5\u5199\u5b8c\u4ee3\u7801\u5c31\u6574\u7406\u4e86\u4e00\u4efd\u6587\u6863\uff0c\u4ee5\u5e2e\u52a9\u548c\u6211\u4e00\u6837\u5165\u95e8\u7684 V \u53cb\u3002</p>\n\n<hr>\n\n<p>\u5df2\u7ecf\u4f7f\u7528\u5230\u7684\u6280\u672f\u6e05\u5355</p>\n\n<p>Meteor \u57fa\u7840\u5f00\u53d1\u6846\u67b6(\u4ee5\u53ca\u81ea\u5e26\u7684 MongoDB \uff0c accounts-ui,check \u7b49 packages)<br>\nMeteor-React \u524d\u7aef\u5e93<br>\nFlowRouter \u5ba2\u6237\u7aef\u8def\u7531<br>\nreact-layout \u7ed3\u5408 FlowLayout \u5b9e\u73b0 react JSX \u7684\u5e03\u5c40<br>\nSemantic-UI \u524d\u7aef\u754c\u9762\u5e93<br>\n\u5176\u4ed6 Meteor \u63d2\u4ef6</p>\n\n<hr>\n\n<p>\u5730\u5740\uff1a<br>\n<a target=\"_blank\" rel=\"nofollow\" href=\"https://github.com/my101du/meteor-react-flowrouter-semantic-singledog\">https://github.com/my101du/meteor-react-flowrouter-semantic-singledog</a></p>\n\n<p>\u5b8c\u5168\u662f\u5b66\u4e60\u5165\u95e8\u7684\u6f66\u8349\u5f62\u6001\uff0c\u6ca1\u6709\u8003\u8651\u5230\u4ee3\u7801\u7684\u6574\u6d01\u548c\u201c\u6700\u4f73\u5b9e\u8df5\u201d\uff08\u8fd9\u4e2a\u8bcd\u6211\u4e00\u76f4\u89c9\u5f97\u83ab\u540d\u5176\u5999\uff09\uff0c\u5e76\u4e14 bug \u7e41\u591a\uff0c\u8bf7\u9ad8\u624b\u6307\u51fa\u6211\u53ef\u4ee5\u7ee7\u7eed\u63d0\u9ad8\u7684\u65b9\u5411\u548c\u6280\u5de7\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/ljbha007", 
        "name": "ljbha007", 
        "avatar": "https://cdn.v2ex.com/avatar/1f47/cef5/10823_large.png?m=1368098214"
      }, 
      "url": "https://www.v2ex.com/t/218951", 
      "title": "\u73a9 Meteor \u8e29\u8fc7\u7684\u9668\u77f3\u5751\u603b\u7ed3", 
      "id": "https://www.v2ex.com/t/218951", 
      "date_published": "2015-09-07T12:48:44+00:00", 
      "content_html": "<p>\u73a9\u4e86\u51e0\u5929 Meteor \u603b\u7ed3\u4e00\u4e0b\u9047\u5230\u8fc7\u7684\u5751<br>\n\u5982\u679c\u662f\u505a\u6559\u7a0b\u91cc\u7684 Todo \u5e94\u7528\u7684\u786e\u662f\u5f88\u5bb9\u6613 \u4f46\u662f\u5982\u679c\u8981\u505a\u590d\u6742\u4e00\u70b9\u7684\u5e94\u7528\u5751\u5c31\u5f00\u59cb\u591a\u8d77\u6765 \u800c\u4e14\u5f88\u591a\u90fd\u662f\u9668\u77f3\u5751\u7ea7\u522b\u7684</p>\n\n<ol>\n<li>\u6587\u6863\u95f4\u5173\u8054\u652f\u6301\u975e\u5e38\u5dee \u56e0\u4e3a mongoDB \u6ca1\u6709\u539f\u751f\u7684 join \u64cd\u4f5c \u53ea\u80fd\u9760\u81ea\u5df1\u624b\u52a8\u4e8c\u6b21\u67e5\u8be2\u6765\u5173\u8054\u5bf9\u8c61\uff0c\u4f46\u662f\n\uff0d Meteor.publish \u53ea\u652f\u6301\u8fd4\u56de\u6570\u636e\u5e93\u6307\u9488 \u4e0d\u80fd\u8fd4\u56de\u5df2\u7ecf\u67e5\u597d\u7684\u6570\u636e\u96c6\uff08\u4e3a\u4e86\u4f7f\u7528 mongoDB \u7684 tailable cursor \u5b9e\u73b0\u4ece\u6570\u636e\u5e93\u5230\u5e94\u7528\u5c42\u7684\u6570\u636e\u63a8\u9001\uff09\u6240\u4ee5\u5982\u679c\u60f3\u8981\u5728\u670d\u52a1\u5668\u7aef\u76f4\u63a5\u5173\u8054\u53ea\u80fd\u81ea\u5df1\u7528\u5e95\u5c42\u7684 observe \u548c observeChanges \u7684 API \u6765\u91cd\u5199 publish \u65b9\u6cd5 \u975e\u5e38\u590d\u6742\u800c\u4e14\u76f8\u5173\u7684\u6587\u6863\u4e5f\u4e0d\u5168\u9762\n\uff0d \u5982\u679c\u4f7f\u7528\u5ba2\u6237\u7aef Join \u7684\u529e\u6cd5\u4e5f\u4f1a\u6709\u95ee\u9898 \u6bd4\u5982\u67d0\u4e2a document \u4e2d\u6709\u4e2a\u5b57\u6bb5\u662f\u6570\u7ec4 \u6570\u7ec4\u4e2d\u6709\u4e86\u65b0\u7684\u5143\u7d20\u8fdb\u6765 \u9047\u5230\u8fd9\u79cd\u60c5\u51b5 \u5ba2\u6237\u7aef\u76f4\u63a5 join \u7684\u5bf9\u8c61\u5c31\u4f1a\u6536\u4e0d\u5230\u6d88\u606f \u56e0\u4e3a \u6ca1\u6709\u4e3b\u52a8\u53bb subscribe</li>\n</ol>\n\n<p>\u89e3\u51b3\u529e\u6cd5\uff1a <a target=\"_blank\" rel=\"nofollow\" href=\"https://github.com/englue/meteor-publish-composite\">https://github.com/englue/meteor-publish-composite</a> \u4f7f\u7528\u8fd9\u4e2a\u5305\u53ef\u4ee5\u89e3\u51b3\u670d\u52a1\u5668\u7aef\u7684 join \u903b\u8f91\u590d\u6742\u7684\u95ee\u9898</p>\n\n<p>\u5173\u4e8e\u8fd9\u65b9\u9762\u4e00\u4e9b\u76f8\u5173\u7684\u6587\u7ae0\uff1a <a target=\"_blank\" rel=\"nofollow\" href=\"https://www.discovermeteor.com/blog/reactive-joins-in-meteor/\">https://www.discovermeteor.com/blog/reactive-joins-in-meteor/</a></p>\n\n<ol>\n<li>\u88ab\u5173\u8054\u7684\u6587\u6863\u66f4\u65b0\u65f6\u4e0d\u4f1a\u89e6\u53d1 blaze \u6a21\u7248\u5f15\u64ce\u7684\u91cd\u7ed8 \u56e0\u4e3a join \u4e0a\u53bb\u7684\u6587\u6863\u4e00\u822c\u662f\u76f4\u63a5\u7528\u8d4b\u503c\u7684\u65b9\u5f0f\u9644\u52a0\u5230\u4e3b\u6587\u6863\u4e0a\u7684 blaze \u8bfb\u53d6\u8be5\u503c\u7684\u65f6\u5019\u6ca1\u6709\u89e6\u53d1\u6ce8\u518c\u91cd\u7ed8\u7684\u6ce8\u518c\u673a\u5236 \u6240\u4ee5\u5f53\u8fd9\u4e2a\u6587\u6863\u66f4\u65b0\u65f6\u4e5f\u5c31\u4e0d\u4f1a\u89e6\u53d1\u91cd\u7ed8</li>\n</ol>\n\n<p>\u89e3\u51b3\u529e\u6cd5<br>\n 1.\u7528 Template.&lt;my object&gt;.helpers \u8fd4\u56de\u4e00\u4e2a\u5173\u8054\u6587\u6863\u7684\u6307\u9488 \u8bfb\u53d6\u6307\u9488\u7684\u503c\u65f6\u4f1a\u89e6\u53d1 Meteor \u7684\u91cd\u7ed8\u6ce8\u518c\u673a\u5236 \u6240\u4ee5\u5f53\u88ab\u5173\u8054\u7684\u5bf9\u8c61\u5bf9\u8c61\u66f4\u65b0\u65f6\u5c31\u89e6\u53d1\u4e86\u91cd\u7ed8 \u4f8b\u5982</p>\n<div class=\"highlight\"><pre>Template.book.helpers ({\n   &#39;author&#39; : function (){\n     return Authors.find (this.authorId );\n   }\n });\n</pre></div>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/ljbha007", 
        "name": "ljbha007", 
        "avatar": "https://cdn.v2ex.com/avatar/1f47/cef5/10823_large.png?m=1368098214"
      }, 
      "url": "https://www.v2ex.com/t/218189", 
      "title": "\u8bd5\u7528\u4e86\u4e24\u5929 Meteor \u89c9\u5f97\u5f88\u4e0d\u9519", 
      "id": "https://www.v2ex.com/t/218189", 
      "date_published": "2015-09-04T01:52:49+00:00", 
      "content_html": "\u4e3b\u8981\u4f18\u70b9\r<br />\r<br />\uff0d \u5185\u7f6e RPC \u529f\u80fd \u670d\u52a1\u5668\u548c\u5ba2\u6237\u7aef\u4e4b\u95f4\u7684\u4ea4\u63a5\u4ee3\u7801\u53ef\u4ee5\u8282\u7701\u5f88\u591a\r<br />\r<br />\uff0d \u672c\u5730\u7684 minimongo \u529f\u80fd\u5f88\u597d\u7528 \u8ba9\u5ba2\u6237\u7aef\u53ea\u9700\u8981\u4e13\u6ce8\u6570\u636e\u7684\u5c55\u793a \u590d\u6742\u7684\u6570\u636e\u540c\u6b65\u903b\u8f91\u90fd\u5df2\u7ecf\u5b9e\u73b0\u5e76\u9690\u85cf\u6389\u4e86\r<br />\r<br />\uff0d publish/subscribe \u6a21\u5f0f\u9002\u5408\u505a\u63a8\u9001\u5e94\u7528 \u5f88\u65b9\u4fbf"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Janpo", 
        "name": "Janpo", 
        "avatar": "https://cdn.v2ex.com/avatar/4e87/337f/1862_large.png?m=1495687553"
      }, 
      "url": "https://www.v2ex.com/t/217877", 
      "title": "\u7528 Meteor \u505a\u4e86\u4e2a\u7ad9\uff0c\u5927\u5bb6\u53ef\u4ee5\u6765\u51d1\u51d1", 
      "id": "https://www.v2ex.com/t/217877", 
      "date_published": "2015-09-02T08:18:02+00:00", 
      "content_html": "\u7eaf METEOR \u6253\u9020\uff0c\u8fd8\u5728\u4e0d\u65ad\u5b8c\u5584\u4e2d, \u7f51\u5740\uff1a <a target=\"_blank\" href=\"http://www.icoufen.com\" rel=\"nofollow\">http://www.icoufen.com</a>"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/ljbha007", 
        "name": "ljbha007", 
        "avatar": "https://cdn.v2ex.com/avatar/1f47/cef5/10823_large.png?m=1368098214"
      }, 
      "url": "https://www.v2ex.com/t/217557", 
      "title": "\u6709 V \u53cb\u7528 Meteor.js \u505a\u6b63\u5f0f\u7684\u4ea7\u54c1\u5417\uff1f\u8fdb\u6765\u8ba8\u8bba\u4e00\u4e0b \u697c\u4e3b\u662f\u4e2a\u504f\u6267\u72c2", 
      "id": "https://www.v2ex.com/t/217557", 
      "date_published": "2015-09-01T05:50:00+00:00", 
      "content_html": "<p>\u6211\u4eec\u516c\u53f8\u4ea7\u54c1\u539f\u8ba1\u5212\u662f\u7528 Java \u540e\u53f0 + Ionic \u505a<br>\n\u4f46\u662f\u540e\u6765\u53d1\u73b0 Java \u5f00\u53d1\u6548\u7387\u786e\u5b9e\u4e0d\u5982\u52a8\u6001\u8bed\u8a00 \u867d\u7136\u8fd8\u662f\u53ef\u4ee5\u63a5\u53d7\u7684\u8303\u56f4\u5185 \u4f46\u662f\u627e\u5230\u7684\u7a0b\u5e8f\u5458\u6c34\u5e73\u53c2\u5dee\u4e0d\u9f50\uff08\u6c34\u5e73\u4e0d\u597d\u7684\u90a3\u4e2a\u4ee3\u7801\u770b\u7740\u7b80\u76f4\u5413\u4eba\uff09</p>\n\n<p>\u670b\u53cb\u63a8\u8350\u4e86 Meteor.js \u6211\u4e5f\u7a0d\u5fae\u7814\u7a76\u4e86\u4e00\u4e0b \u770b\u4f3c\u5f88\u7f8e\u597d \u4f46\u662f\u4e0d\u77e5\u9053\u5b9e\u9645\u5f00\u53d1\u7684\u65f6\u5019\u4f1a\u4e0d\u4f1a\u9047\u5230\u4ec0\u4e48\u95ee\u9898\uff1f<br>\n\u6bd4\u5982</p>\n\n<p>\uff0d \u540e\u53f0\u81ea\u5b9a\u4e49\u4e1a\u52a1\u903b\u8f91\u662f\u5426\u4f1a\u5f88\u56f0\u96be\uff1f<br>\n     \u6211\u4ee5\u524d\u4e5f\u9047\u5230\u8fc7\u50cf Django cakePHP \u8fd9\u6837\u7684\u6846\u67b6 \u867d\u7136\u529f\u80fd\u5f88\u5b8c\u5584 \u53ef\u4ee5\u91cd\u590d\u5229\u7528\u7684\u6a21\u5757\u5f88\u591a \u4f46\u662f\u6709\u4e9b\u6a21\u5757\u81ea\u5b9a\u4e49\u5f00\u53d1\u592a\u590d\u6742 \u751a\u81f3\u590d\u6742\u5230\u4e0d\u5982\u81ea\u5df1\u91cd\u65b0\u5199\u7684\u7a0b\u5ea6</p>\n\n<p>\uff0d \u662f\u5426\u9047\u5230\u660e\u663e\u7684\u6548\u7387\u95ee\u9898\uff1f\u80fd\u5426\u5e94\u5bf9\u624b\u673a\u591a\u53d8\u7684\u7f51\u7edc\u73af\u5883\uff1f<br>\n     Metero.js \u91cc\u7684 live query \u867d\u7136\u5f88\u597d\u7528 \u4f46\u662f\u6bd5\u7adf\u9700\u8981\u957f\u65f6\u95f4\u4fdd\u6301\u8fde\u63a5 \u4e00\u4e2a\u662f\u5982\u679c\u662f\u624b\u673a\u4f7f\u7528 \u6570\u636e\u6d41\u91cf\u4f1a\u4e0d\u4f1a\u592a\u5927\uff1f \u8fd8\u6709\u4e00\u4e2a\u662f\u8fd9\u6837\u5927\u91cf\u7684\u4ea4\u6362\u6570\u636e\u4f1a\u4e0d\u4f1a\u5bfc\u81f4\u7535\u91cf\u6d88\u8017\u8fc7\u5feb\uff1f \u5982\u679c\u662f\u79fb\u52a8\u7f51\u7edc\u8fd9\u79cd\u7ecf\u5e38\u6389\u7ebf\u3001\u4e0d\u7a33\u5b9a\u7684\u73af\u5883 \u6709\u6ca1\u6709\u9047\u5230\u4ec0\u4e48\u5947\u602a\u7684\u95ee\u9898\uff1f</p>\n\n<p>\uff0d \u670d\u52a1\u5668\u7684\u6027\u80fd\u5f00\u9500\u6a2a\u5411\u5bf9\u6bd4\u7684\u7ed3\u679c\u5982\u4f55\uff1f<br>\n     \u56e0\u4e3a\u9700\u8981\u7ef4\u6301\u5927\u91cf\u5ba2\u6237\u7aef\u7684 WebSocket \u4f1a\u4e0d\u4f1a\u5bfc\u81f4\u670d\u52a1\u5668\u7684\u5185\u5b58\u548c CPU \u7684\u5f00\u9500\u592a\u5927\uff1f</p>\n\n<p>\u697c\u4e3b\u6b63\u5728\u4e25\u8083\u8003\u8651\u8981\u4e0d\u8981\u5206\u914d\u4e00\u70b9\u5f00\u53d1\u65f6\u95f4\u51fa\u6765\u7528 meteor.js \u505a\u4e00\u4e2a\u5feb\u901f\u539f\u578b \u6240\u4ee5\u5982\u679c\u6709 V \u6709\u5728\u6b63\u5f0f\u4ea7\u54c1\u5f00\u53d1\u4e2d\u7528\u8fc7 meteor.js \u8bf7\u4e0d\u541d\u8d50\u6559 \u6216\u8005\u52a0\u6211 qq \u4ea4\u6d41\u4ea4\u6d41 523823374</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/zicai", 
        "name": "zicai", 
        "avatar": "https://cdn.v2ex.com/avatar/bcdf/5f27/50383_large.png?m=1404702487"
      }, 
      "url": "https://www.v2ex.com/t/193774", 
      "title": "Meteor \u4e2d\u6587\u793e\u533a\u4e0a\u7ebf\u5566\uff01\uff01", 
      "id": "https://www.v2ex.com/t/193774", 
      "date_published": "2015-05-26T03:55:28+00:00", 
      "content_html": "<p>Meteor \u4e2d\u6587\u793e\u533aMeteorHub\u4e0a\u7ebf\u5566\uff01\uff01\uff01</p>\n\n<p>\u540c\u5b66\u4eec\u53ef\u4ee5\u5728\u4e0a\u9762\u5206\u4eabMeteor\u7ecf\u9a8c\uff0c\u6216\u662f\u4f7f\u7528Meteor\u8fc7\u7a0b\u4e2d\u9047\u5230\u4e86\u56f0\u96be\uff0c\u4e0d\u7528\u6015\uff0c\u53ef\u4ee5\u5230\u793e\u533a\u5bfb\u6c42\u5e2e\u52a9</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/binarymann", 
        "name": "binarymann", 
        "avatar": "https://cdn.v2ex.com/avatar/0048/81eb/12223_large.png?m=1425720587"
      }, 
      "url": "https://www.v2ex.com/t/182700", 
      "title": "\u8bf7\u95ee meteor build \u51fa\u6765\u7684 iOS app \u80fd\u591f\u76f4\u63a5\u53d1\u5e03\u5230 Appstore \u5417\uff1f", 
      "id": "https://www.v2ex.com/t/182700", 
      "date_published": "2015-04-09T16:13:14+00:00", 
      "content_html": "\u4e0d\u77e5\u9053\u8fd9\u7c7b\u7eafhtml/css/js\u7684App\u80fd\u591f\u901a\u8fc7\u5ba1\u67e5\u7684\u53ef\u80fd\u6027\u5927\u4e0d\uff0c\u4e0d\u8fc7meteor\u7684\u786e\u592a\u8d5e\u4e86"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/tamamaxox", 
        "name": "tamamaxox", 
        "avatar": "https://cdn.v2ex.com/avatar/3377/4f2e/17802_large.png?m=1400124739"
      }, 
      "url": "https://www.v2ex.com/t/159437", 
      "title": "linux \u4e0b\u9762\u4f7f\u7528 meteor build \u4e0d\u52a0 --debug \u53c2\u6570\u7684\u8bdd\u65e0\u6cd5\u751f\u6210\u51fa bundle\u3002", 
      "id": "https://www.v2ex.com/t/159437", 
      "date_published": "2015-01-05T09:35:14+00:00", 
      "content_html": "\u8fd9\u4e2a\u4ec0\u4e48\u56de\u4e8b\uff0c\u6709\u5f97\u7834\u5417\uff1f\u8bf7\u6c42\u771f\u5fc3\u591a"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/lin", 
        "name": "lin", 
        "avatar": "https://cdn.v2ex.com/avatar/fe9f/c289/83_large.png?m=1773678072"
      }, 
      "url": "https://www.v2ex.com/t/149712", 
      "title": "CNAME \u5230 origin.meteor.com \u7684\u7f51\u7ad9\u65e0\u6cd5\u8bbf\u95ee\u600e\u4e48\u7834\uff1f", 
      "id": "https://www.v2ex.com/t/149712", 
      "date_published": "2014-11-27T07:56:01+00:00", 
      "content_html": "\u5e94\u8be5\u662f\u88ab\u5899\u4e86\u3002<br />\u6709\u6ca1\u6709\u7834\u89e3\u7684\u65b9\u6cd5\u6bd4\u5982\u53cd\u5411\u4ee3\u7406\uff1f<br /><br />\u8c22\u8c22\uff01"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Kai", 
        "name": "Kai", 
        "avatar": "https://cdn.v2ex.com/avatar/021b/bc7e/1024_large.png?m=1657391813"
      }, 
      "url": "https://www.v2ex.com/t/142310", 
      "title": "Meteor 1.0", 
      "id": "https://www.v2ex.com/t/142310", 
      "date_published": "2014-10-29T03:12:17+00:00", 
      "content_html": "<a target=\"_blank\" href=\"https://www.meteor.com/\" rel=\"nofollow\">https://www.meteor.com/</a>"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/laosb", 
        "name": "laosb", 
        "avatar": "https://cdn.v2ex.com/gravatar/49fc92f18dc48d2e5fc0caee2503f931?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/141573", 
      "title": "\u662f\u4e0d\u662f\u5e94\u8be5\u6210\u7acb\u4e00\u4e2a MeteorChina \u793e\u533a\u5462\uff1f\u56e0\u4e3a\u6211\u53d1\u73b0\u8fde\u4e00\u4efd\u6700\u65b0\u7248\u7684 Doc \u7ffb\u8bd1\u90fd\u6ca1\u6709\u3002", 
      "id": "https://www.v2ex.com/t/141573", 
      "date_published": "2014-10-26T03:27:05+00:00", 
      "content_html": ""
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Livid", 
        "name": "Livid", 
        "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1775624785"
      }, 
      "url": "https://www.v2ex.com/t/141475", 
      "title": "\u5f88\u597d\u5947 Meteorpedia \u8fd9\u4e2a wiki \u662f\u7528\u4ec0\u4e48\u8f6f\u4ef6\u9a71\u52a8\u7684\uff1f", 
      "id": "https://www.v2ex.com/t/141475", 
      "date_published": "2014-10-25T09:08:14+00:00", 
      "content_html": "<a target=\"_blank\" href=\"http://www.meteorpedia.com/read/Main_Page\" rel=\"nofollow\">http://www.meteorpedia.com/read/Main_Page</a><br /><br />\u5f88\u559c\u6b22\u8fd9\u4e2a\u8bbe\u8ba1\u3002"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/loddit", 
        "name": "loddit", 
        "avatar": "https://cdn.v2ex.com/avatar/c2be/0c8f/13134_large.png?m=1338089649"
      }, 
      "url": "https://www.v2ex.com/t/139895", 
      "date_modified": "2014-10-18T14:00:43+00:00", 
      "content_html": "<p>\u53bb\u5e74\u5728\u4e00\u4e2ahackthorn\u4e0a\u505a\u4e86\u4e00\u4e2a \u53ef\u4ee5\u591a\u4eba\u5b9e\u65f6\u6f14\u594f\u97f3\u4e50\u7684\u5c0f\u4f5c\u54c1\u3002</p>\n\n<p>\u540e\u6765\u4e00\u76f4\u60f3\u7528meteor\u91cd\u65b0\u5199\u4e00\u904d\uff0c\u4e00\u76f4\u5728\u62d6\u5ef6\uff0c\u7ed3\u679c\u8fd9\u6b21\u8d76\u5728 <a target=\"_blank\" rel=\"nofollow\" href=\"http://v2ex.com/t/139342\">MeteorDay</a> \u4e4b\u524d\u7ec8\u4e8e\u662f\u505a\u51fa\u6765\u4e86\u3002</p>\n\n<p>\u4f46\u662f\u7531\u4e8e\u7f51\u7edc\u5ef6\u8fdf\u548c\u7b97\u6cd5\u4e0d\u591f\u597d\uff0c\u76ee\u524d\u7684\u5b9e\u9645\u7684\u6548\u679c\u8fd8\u5f88\u5dee\u3002\u4e4b\u540e\u4f1a\u770b\u770b profile \u4e13\u653b\u4e00\u4e0b\u6027\u80fd\u4f18\u5316\u3002</p>\n\n<p><a target=\"_blank\" rel=\"nofollow\" href=\"http://goo.gl/Kp7Gq5\">Demo\u5730\u5740</a> </p>\n\n<p>\u5982\u679c\u6253\u4e0d\u5f00\u53ef\u80fd\u662f\u56e0\u4e3a Google web Fonts \u88ab\u5899\u6ca1\u52a0\u8f7d\u51fa\u6765\uff0c\u70b9\u51fb\u4e00\u4e0besc\u5c31\u597d\u3002</p>\n\n<p>\u6309\u7167\u60ef\u4f8b\u7ee7\u7eed <a target=\"_blank\" rel=\"nofollow\" href=\"https://github.com/loddit/band\">\u516c\u5f00\u4ee3\u7801</a></p>\n", 
      "date_published": "2014-10-18T14:00:09+00:00", 
      "title": "Band ~ Let`s play music together", 
      "id": "https://www.v2ex.com/t/139895"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/loddit", 
        "name": "loddit", 
        "avatar": "https://cdn.v2ex.com/avatar/c2be/0c8f/13134_large.png?m=1338089649"
      }, 
      "url": "https://www.v2ex.com/t/139342", 
      "date_modified": "2014-10-16T10:10:43+00:00", 
      "content_html": "<h1>MeteorDay</h1>\n\n<p>meteor.js \u79bb 1.0 \u8d8a\u6765\u8d8a\u8fd1\u4e86\uff0c11\u67086\u53f7\u5168\u7403\u5404\u5730\u90fd\u4f1a\u4e3e\u884c\u7684\u6d3b\u52a8\uff0c\u548c hangout \u3002</p>\n\n<p><a target=\"_blank\" rel=\"nofollow\" href=\"http://meteorday.com/\">http://meteorday.com/</a></p>\n\n<p>\u4e4b\u524d\u7684 0.9 \u7248\u672c\u63d0\u4f9b\u4e86\u5b98\u65b9\u7684\u5305\u7ba1\u7406\u673a\u5236\uff0c1.0 \u5c06\u5f88\u53ef\u80fd\u62e5\u6709\u4e0b\u9762 roadmap \u91cc\u627f\u8bfa\u7684\u529f\u80fd\u3002</p>\n\n<p><a target=\"_blank\" rel=\"nofollow\" href=\"https://trello.com/b/hjBDflxp/meteor-roadmap\">roadmap</a></p>\n\n<h1>\u53ef\u53c2\u4e0e</h1>\n\n<p>\u4e2d\u56fd\u90e8\u5206\u6709<a target=\"_blank\" rel=\"nofollow\" href=\"http://www.meetup.com/Meteor-Beijing/events/212604652/\">\u5317\u4eac</a>\u548c<a target=\"_blank\" rel=\"nofollow\" href=\"http://www.meetup.com/Meteor-HK/events/213330512/\">\u9999\u6e2f</a></p>\n\n<p>\u6211\u4f1a\u53bb\u5317\u4eac\u7684\u6d3b\u52a8\uff0c\u7ec4\u7ec7\u8005\u8fd8\u5728\u627e\u573a\u5730\u3002\u6309\u5df2\u5f80\u7684\u7ecf\u9a8c\u770b\u53c2\u4e0e\u4eba\u6570\u5e94\u8be5\u4e0d\u4f1a\u8d85\u8fc750\u4eba\uff0c\u5e0c\u671b\u5927\u5bb6\u80fd\u6709\u63a8\u8350\u3002</p>\n", 
      "date_published": "2014-10-16T10:09:37+00:00", 
      "title": "MeteorDay", 
      "id": "https://www.v2ex.com/t/139342"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Livid", 
        "name": "Livid", 
        "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1775624785"
      }, 
      "url": "https://www.v2ex.com/t/128381", 
      "title": "Kadira", 
      "id": "https://www.v2ex.com/t/128381", 
      "date_published": "2014-08-17T07:37:05+00:00", 
      "content_html": "\u7528\u4e8e Meteor app \u7684\u6027\u80fd\u76d1\u63a7\u5de5\u5177\uff1a<br /><br /><a target=\"_blank\" href=\"https://kadira.io/\" rel=\"nofollow\">https://kadira.io/</a>"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/loddit", 
        "name": "loddit", 
        "avatar": "https://cdn.v2ex.com/avatar/c2be/0c8f/13134_large.png?m=1338089649"
      }, 
      "url": "https://www.v2ex.com/t/124186", 
      "title": "\u4e00\u4e2a\u8d85\u7ea7\u7b80\u5355\u7248\u7684 slack", 
      "id": "https://www.v2ex.com/t/124186", 
      "date_published": "2014-07-23T15:29:07+00:00", 
      "content_html": "\u8d77\u540d\u662f Sora \uff0c\u610f\u601d\u662f\u5929\u7a7a\uff0c\u5927\u5bb6\u4e0d\u8981\u60f3\u6b6a\u4e86\u3002<br /><br />\u5730\u5740\u662f <a target=\"_blank\" href=\"http://sora.meteor.com\" rel=\"nofollow\">http://sora.meteor.com</a><br /><br />\u5229\u7528meteor\u7684\u5b9e\u65f6\u7279\u6027\uff0c\u5f00\u53d1\u8fd9\u79cd\u534f\u4f5c\u5de5\u5177\u786e\u5b9e\u5f88\u65b9\u4fbf\u3002<br /><br />\u6211\u7b2c\u4e00\u6b21\u5728\u9879\u76ee\u91cc\u7528\u4e86\u4e09\u4e2a mrt \u7684\u63d2\u4ef6\uff1a<br />  iron-router\uff1a \u7528\u6765\u505a\u8def\u7531<br />  gravatar: Gravatar\u5934\u50cf<br />  user-status: \u7528\u6237\u5728\u7ebf\u72b6\u6001 <br />\u90fd\u7b97\u662f\u5373\u63d2\u5373\u7528\u5427\u3002<br /><br />\u5f53\u7136\u8fd9\u4e2a\u5c0f\u4e1c\u897f\u529f\u80fd\u5f88\u7b80\u5355\uff0c\u800c\u4e14\u5927\u5bb6\u90fd\u5728\u540c\u4e00\u4e2a\u201c\u5e7f\u573a\u201d\uff0c\u4e5f\u5c31\u662f\u8bf4\u4e00\u4e2a\u90e8\u7f72\u53ea\u652f\u6301\u4e00\u4e2ateam\u3002<br />\u6240\u4ee5\u8fd9\u91cc\u6700\u591a\u53ea\u80fd\u88c5\u4e0b20\u4eba\u5427\uff0c\u518d\u591a\u6211\u4e5f\u6ca1\u8bd5\u8fc7\uff0c\u6240\u4ee5\uff0c\u6211\u968f\u65f6\u53ef\u80fd\u4f1a\u91cd\u7f6e\u6570\u636e\u5e93\u3002<br /><br />\u4e0d\u8fc7\u6ca1\u5173\u7cfb\uff0c\u81ea\u5df1\u90e8\u7f72\u4e00\u4e2aSora\u5176\u5b9e\u4e5f\u4e0d\u96be\uff0c\u53ea\u9700\u8981\u5b89\u88c5\u4e0b npm \u548c meteor \u5728\u53bb\u770b\u770b\u6587\u6863\u5c31\u53ef\u4ee5\u4e86\u3002<br />\u4ee3\u7801\u5728 <a target=\"_blank\" href=\"http://github.com/loddit/sora\" rel=\"nofollow\">http://github.com/loddit/sora</a> <br /><br /><br />\u6700\u540e\u5e2e\u670b\u53cb\u505a\u4e2a\u5e7f\u544a\uff0c\u5317\u4eac\u7684meteor\u7ebf\u4e0b\u805a\u4f1a\uff0c\u76ee\u524d\u65f6\u95f4\u672a\u5b9a\uff0c\u611f\u5174\u8da3\u7684\u53ef\u4ee5\u5148\u5173\u6ce8\u3002 <a target=\"_blank\" href=\"http://www.meetup.com/Meteor-Beijing/events/166521512/\" rel=\"nofollow\">http://www.meetup.com/Meteor-Beijing/events/166521512/</a>"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/loddit", 
        "name": "loddit", 
        "avatar": "https://cdn.v2ex.com/avatar/c2be/0c8f/13134_large.png?m=1338089649"
      }, 
      "url": "https://www.v2ex.com/t/119942", 
      "title": "2014 Meteor Challenge \u8fd8\u5269\u4f59 2 \u5929", 
      "id": "https://www.v2ex.com/t/119942", 
      "date_published": "2014-06-28T02:03:20+00:00", 
      "content_html": "<a target=\"_blank\" href=\"http://challenge.meteor.com/\" rel=\"nofollow\">http://challenge.meteor.com/</a><br /><br />\u76ee\u524dMeteor\u56e2\u961f\u5408\u4f5c\u5728\u641e\u4e00\u4e2a\u7b79\u6b3e\u6d3b\u52a8\uff0c\u53ea\u8981\u4f60\u53bb github \u4e0a\u6536\u85cf\u4e86 meteor \u7684 repo \uff08github.com/meteor/meteor\uff09\uff0c\u5c31\u4f1a\u6709 5$ \u6350\u51fa\u505a\u4e3a\u6559\u80b2\u5b69\u5b50\u5b66\u7f16\u7a0b\u7684\u7ecf\u8d39\u3002<br /><br />\u5982\u679c\u4f60\u8ba4\u540c\u4ed6\u4eec\u7684\u505a\u6cd5\uff0c\u4e0d\u59a8\u652f\u6301\u4e00\u4e0b\u3002"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/laskuma", 
        "name": "laskuma", 
        "avatar": "https://cdn.v2ex.com/avatar/c7aa/9528/17847_large.png?m=1775744190"
      }, 
      "url": "https://www.v2ex.com/t/100732", 
      "title": "\u56fd\u5185\u6709\u591a\u5c11 Meteor \u5f00\u53d1\u8005\uff1f", 
      "id": "https://www.v2ex.com/t/100732", 
      "date_published": "2014-02-18T06:00:10+00:00", 
      "content_html": "\u603b\u89c9\u5f97\u6709\u79cd\u53eb\u597d\u4e0d\u53eb\u5ea7\u7684\u611f\u89c9\u3002\u4eca\u5929\u52a8\u624b\u60f3\u7ed9\u5b89\u5353\u5ba2\u6237\u7aef\u5199\u4e2a\u767b\u5f55API\uff0c\u53d1\u73b0Server\u4e0d\u5177\u6709\u68c0\u6d4b\u7528\u6237\u5408\u6cd5\u6027\u7684\u529f\u80fd\u3002stackoverflow\u4e0a\u95ee\u4e86\u4e0b\uff0c\u5f97\u81ea\u5df1\u8bfb\u4ee3\u7801\u5199package\u4e86\u3002"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/koon_kai", 
        "name": "koon_kai", 
        "avatar": "https://cdn.v2ex.com/avatar/e6c7/ae6b/18328_large.png?m=1741924732"
      }, 
      "url": "https://www.v2ex.com/t/93408", 
      "date_modified": "2013-12-16T12:22:21+00:00", 
      "content_html": "\u6700\u8fd1\u5728\u5b66\u4e60Meteor\u8fd9\u4e2a\u6846\u67b6\uff0c\u628a\u300aDiscover Meteor\u300b\u8fd9\u672c\u4e66\u91cc\u9762\u7684\u4f8b\u5b50microscope\u62ff\u6765\u5c0f\u6539\u4e86\u4e00\u4e0b\uff0c<br />\u505a\u4e86\u4e00\u4e2a\u53ebMeteor News\u7684\u5c0f\u7ad9\uff08\u7c7b\u4f3cHacker News\uff09\u3002<br /><br />\u76ee\u7684\u662f\u8ba9\u7528\u6237\u63d0\u4ea4\u5173\u4e8eMeteor\u7684\u8d44\u6599\u3001\u6559\u7a0b\u548c\u65b0\u95fb\u7b49.<br /><br />MeteorNews:  [<a href=\"http://news.cmeteor.org/](http://news.cmeteor.org/)\" rel=\"nofollow\">http://news.cmeteor.org/](http://news.cmeteor.org/)</a><br /><br />\u6b22\u8fce\u5410\u69fd\u548c\u5efa\u8bae\u3002", 
      "date_published": "2013-12-16T12:20:53+00:00", 
      "title": "Meteor News", 
      "id": "https://www.v2ex.com/t/93408"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/rvmedtech", 
        "name": "rvmedtech", 
        "avatar": "https://cdn.v2ex.com/avatar/5da9/cf96/46757_large.png?m=1392640942"
      }, 
      "url": "https://www.v2ex.com/t/85859", 
      "title": "\u6280\u672f\u9009\u578b\u4f7f\u7528meteor\u7684\u521b\u4e1a\u516c\u53f8", 
      "id": "https://www.v2ex.com/t/85859", 
      "date_published": "2013-10-17T03:54:17+00:00", 
      "content_html": "\u516c\u53f8\u521a\u521a\u6210\u7acb\uff0c\u6025\u9700\u5f00\u53d1\u4eba\u5458\uff0c\u5927\u5bb6\u6709\u5174\u8da3\u5417\uff1f\u5730\u70b9\u5728\u5e7f\u5dde\u3002<br /><br />\u62db\u8058\u8d34\uff1ahttp://www.v2ex.com/t/85506"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/crapthings", 
        "name": "crapthings", 
        "avatar": "https://cdn.v2ex.com/gravatar/ffbed556c373d95be74c2b2daf7ac09d?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/82859", 
      "date_modified": "2013-09-17T18:06:50+00:00", 
      "content_html": "\u533f\u540d\u4fe1\u606f\u7248<br /><br /><a href=\"http://www.abcdefuckyou.com\" rel=\"nofollow\">www.abcdefuckyou.com</a><br /><br />\u652f\u6301markdown", 
      "date_published": "2013-09-17T17:17:38+00:00", 
      "title": "meteor.js \u533f\u540d\u4fe1\u606f\u677f", 
      "id": "https://www.v2ex.com/t/82859"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Livid", 
        "name": "Livid", 
        "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1775624785"
      }, 
      "url": "https://www.v2ex.com/t/67385", 
      "title": "Telescope", 
      "id": "https://www.v2ex.com/t/67385", 
      "date_published": "2013-04-30T08:26:19+00:00", 
      "content_html": "\u4e00\u4e2a\u7528 Meteor \u505a\u7684\u5f00\u6e90\u7c7b Reddit \u7a0b\u5e8f\uff1a<br /><br /><a href=\"http://telesc.pe/\" rel=\"nofollow\">http://telesc.pe/</a><br /><br />\u6f14\u793a\uff1a<br /><br /><a href=\"http://demo.telesc.pe/\" rel=\"nofollow\">http://demo.telesc.pe/</a>"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/yakczh", 
        "name": "yakczh", 
        "avatar": "https://cdn.v2ex.com/avatar/6f32/49aa/31337_large.png?m=1422287290"
      }, 
      "url": "https://www.v2ex.com/t/65008", 
      "title": "meteor 6.0\u6709\u4ec0\u4e48\u65b0\u53d8\u5316\u5417?", 
      "id": "https://www.v2ex.com/t/65008", 
      "date_published": "2013-04-05T05:36:44+00:00", 
      "content_html": "New version available: 0.6.0<br />  downloading [=============================] 100%... finished download<br /><br />Meteor has a brand new distribution system!<br /><br />In this new system, code-named Engine, packages are downloaded<br />individually and on demand. But all of the packages in each official<br />Meteor release are prefetched and cached so you can still use Meteor<br />when you're on a plane or in a coffeeshop with no Wifi.<br /><br />Also, every Meteor project is now pinned to a specific Meteor release,<br />so everyone on your team is always running the same code regardless of<br />what they have installed on their laptop. Whenever you run 'meteor',<br />Engine automatically fetches the needed release manifest, build tools,<br />smart packages, and npm dependencies into your local warehouse.<br /><br />Removing your current installation.<br /><br />Downloading Engine upgrade<br />######################################################################## 100.0%<br /><br />Installing Meteor in your home directory (~/.meteor):<br /> * 'meteor' build tool<br /> * Package updates: absolute-url accounts-base accounts-facebook<br />   account-github accounts-google accounts-oauth1-helper accounts-oauth2-helper<br />   accounts-oauth-helper accounts-password accounts-twitter accounts-ui<br />   accounts-ui-unstyled accounts-urls account-weibo amplify autopublish<br />   backbone bootstrap code-prettify coffeescript d3 deps domutils ejson email<br />   force-ssl handlebars htmljs http insecure jquery jquery-history<br />   jquery-layout jquery-waypoints json jsparse less livedata liverange<br />   localstorage-polyfill logging madewith meteor minimongo mongo-livedata<br />   ordered-dict past preserve-inputs random reload routepolicy session showdown<br />   spark spiderable srp startup stream stylus templating test-helpers<br />   test-in-browser tinytest underscore universal-events<br /><br />Writing a launcher script to /usr/local/bin/meteor for your convenience.<br />**************************************************************<br />*** Meteor is now installed at /usr/local/bin/meteor.      ***<br />*** Run `hash -r` so that your shell notices it has moved. ***<br />**************************************************************<br />demo: updated to Meteor 0.6.0.<br /><br />-- Notice --<br /><br />0.6.0: Variables declared with `var` at the outermost level of a JavaScript<br />       source file are now private to that file. Remove the `var` to share<br />       a value between files."
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/weiyongqing123", 
        "name": "weiyongqing123", 
        "avatar": "https://cdn.v2ex.com/gravatar/8341059515e9e257bbb8da3c9fc158c2?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/56060", 
      "title": "meteor\u7684google\u4e2d\u6587\u8bba\u575b\u5730\u5740\uff0c\u5927\u5bb6\u8fdb\u8bba\u575b\u4ea4\u6d41\u5566", 
      "id": "https://www.v2ex.com/t/56060", 
      "date_published": "2012-12-28T04:52:52+00:00", 
      "content_html": "<a href=\"https://groups.google.com/forum/?fromgroups#!forum/cn-meteor-js\" rel=\"nofollow\">https://groups.google.com/forum/?fromgroups#!forum/cn-meteor-js</a><br /><br />\u7fa4\u53f7\uff1a256195986<br /><br />\u559c\u6b22meteor\uff0c\u90a3\u5c31\u5171\u540c\u4ea4\u6d41"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/chuangbo", 
        "name": "chuangbo", 
        "avatar": "https://cdn.v2ex.com/avatar/f5de/aeea/584_large.png?m=1677808727"
      }, 
      "url": "https://www.v2ex.com/t/54850", 
      "title": "\u4e00\u4e2a\u4fee\u6539 Essay \u7684\u5c0f\u5de5\u5177", 
      "id": "https://www.v2ex.com/t/54850", 
      "date_published": "2012-12-13T14:46:18+00:00", 
      "content_html": "\u4eca\u5929\u6211\u5728\u5199\u4e00\u5c01\u82f1\u6587\u90ae\u4ef6\uff0c\u56e0\u4e3a\u6211\u82f1\u8bed\u5f88\u5dee\uff0c\u5199\u5b8c\u4ee5\u540e\uff0c\u628a\u90ae\u4ef6\u53d1\u7ed9\u4e86\u4e00\u4e2a\u82f1\u6587\u8001\u5e08\u8ba9\u4ed6\u5e2e\u5fd9\u4fee\u6539\u3002\u4ed6\u4fee\u6539\u5b8c\u6210\u540e\uff0c\u518d\u56de\u590d\u7ed9\u6211\u3002\u8fd9\u91cc\u9762\u7684\u95ee\u9898\u662f\uff0c\u6211\u5f88\u96be\u770b\u51fa\u4ed6\u4fee\u6539\u4e86\u54ea\u513f\u3002<br />\u6240\u4ee5\u6211\u505a\u4e86\u8fd9\u4e2a\u5de5\u5177\u3002<br />\u8fd9\u4e2a\u5de5\u5177\u6284\u88ad\u4e86 notepad.cc \u7684\u60f3\u6cd5\u548c\u6837\u5f0f\uff0c\u533a\u522b\u662f\uff0c\u5199\u597d\u7684 Essay \u53ef\u4ee5\u53d1\u7ed9\u522b\u4eba\u5ba1\u9605\uff0c\u5ba1\u9605\u7684\u7ed3\u679c\u53ef\u4ee5\u5373\u65f6\u770b\u5230\uff0c\u4e0d\u7528\u65b0\u5efa\uff0c\u4e0d\u7528\u4fdd\u5b58\uff0csimple is better.<br /><br /><a href=\"http://42.121.54.125:3000/\" rel=\"nofollow\">http://42.121.54.125:3000/</a>"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/chuangbo", 
        "name": "chuangbo", 
        "avatar": "https://cdn.v2ex.com/avatar/f5de/aeea/584_large.png?m=1677808727"
      }, 
      "url": "https://www.v2ex.com/t/54772", 
      "title": "Meteor \u5f00\u59cb\u7ed9 contributor \u53d1 T-shirt \u4e86\uff0c\u5927\u5bb6\u6709\u6536\u5230\u90ae\u4ef6\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/54772", 
      "date_published": "2012-12-12T23:45:24+00:00", 
      "content_html": "\u51cc\u66685\u70b9\u6536\u5230\u6765\u81ea Meteor \u7684\u90ae\u4ef6\uff0c\u4e0d\u6562\u76f8\u4fe1\u662f\u771f\u7684\uff0c\u6211\u521a\u521a\u5728 twitter \u4e0a\u95ee\u4e86\uff0c\u8fd8\u6ca1\u6709\u56de\u590d\uff0c\u6709\u5176\u4ed6\u4eba\u6536\u5230\u90ae\u4ef6\u5417\uff1f<br /><br />Hi Chuangbo,<br /><br />We're really happy to have you as a Meteor contributor and we'd like<br />to send our thanks. Can you let me know your T-shirt size, and the<br />name/address where we can send you some things? Also, if you'd like to have<br />an extra shirt for a friend or collaborator, let me know that too. We<br />have both men's and women's sizes.<br /><br />Thanks so much!<br /><br />Kristy Hilands<br />Meteor Development Group"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/xieren58", 
        "name": "xieren58", 
        "avatar": "https://cdn.v2ex.com/avatar/6abf/efaf/29855_large.png?m=1634018623"
      }, 
      "url": "https://www.v2ex.com/t/54696", 
      "title": "Meteor\u6709\u4e2a\u5f88\u5927\u7684\u95ee\u9898", 
      "id": "https://www.v2ex.com/t/54696", 
      "date_published": "2012-12-12T03:10:12+00:00", 
      "content_html": "\u5982\u679cMeteor \u524d\u7aef\u8ba2\u9605\u4e86\u540e\u7aefdb\u6570\u636e\uff0c\u5982\u679c\u662f\u5168\u90e8db\u6570\u636e\u63a8\u9001\u8fc7\u6765\uff0c\u5c31\u4f1a\u5f88\u6162\uff0c\u5982\u679c\u6570\u636e\u5c11\u5c31\u5f88\u5feb~~<br /><br />\u5982\u679c\u5206\u9875\u5728\u540e\u7aef\uff0c \u90a3\u5c31\u6ca1\u6cd5\u5f97\u5230 \u603b\u9875\u6570\uff0c \u53ea\u80fd\u662f \u90a3\u79cd\u70b9\u51fb\u3000load more  \u7684\u65b9\u5f0f\u4e86\u6765\u52a0\u8f7d\u6570\u636e\u4e86~~"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/lin", 
        "name": "lin", 
        "avatar": "https://cdn.v2ex.com/avatar/fe9f/c289/83_large.png?m=1773678072"
      }, 
      "url": "https://www.v2ex.com/t/54674", 
      "title": "\u6211\u7528Meteor\u548cTelescope\u642d\u7684\u4e00\u4e2aJavaScript\u5206\u4eab\u7f51\u7ad9", 
      "id": "https://www.v2ex.com/t/54674", 
      "date_published": "2012-12-11T15:59:03+00:00", 
      "content_html": "<a href=\"http://dot-js.com/\" rel=\"nofollow\">http://dot-js.com/</a><br />JavaScript News. Libraries & Tutorials for JavaScript developers.<br /><br />\u8fd9\u662f\u67d0\u4e2a\u5468\u672b\u7684\u8bd5\u9a8c\u54c1\u3002<br />\u4f5c\u4e3a\u5c0f\u767d\uff0c\u540c\u6837\u662f\u62ff\u5f00\u6e90\u4ee3\u7801\u4fee\u4fee\u6539\u6539\uff0c\u6162\u6162\u518d\u5b8c\u5584\u5427\u3002<br /><br />\u53e6\u5916\u53d1\u73b0\u81ea\u5df1\u5199\u7684js\u4e0d\u80fd\u8f93\u51fa\u76f8\u5e94\u5185\u5bb9\uff0c<br />\u7136\u540e\u95ee\u4eba\u624d\u77e5\u9053\u89e3\u51b3\u7684\u7ebf\u7d22\uff0c<br />\u4e0b\u6b21\u66f4\u65b0\u5982\u679c\u6210\u529f\u540e\u518d\u5199\u70b9\u4ec0\u4e48\uff0c\u4e0d\u5982\u642d\u5efa\u5b83\u7684\u4e00\u4e9b\u7ecf\u9a8c\u3002"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/meteor2013", 
        "name": "meteor2013", 
        "avatar": "https://cdn.v2ex.com/avatar/e9b0/9450/30450_large.png?m=1355010412"
      }, 
      "url": "https://www.v2ex.com/t/54521", 
      "title": "\u521d\u5b66Meteor\u7684\u51e0\u4e2a\u8ba8\u8bba", 
      "id": "https://www.v2ex.com/t/54521", 
      "date_published": "2012-12-10T02:49:10+00:00", 
      "content_html": "1. \u670d\u52a1\u5668\u4e0a\u7684\u4ee3\u7801\u4e5f\u662fjs\u7684\u8bdd\uff0c\u6211\u8fd8\u662f\u5f88\u62c5\u5fc3\u5b89\u5168\u6027<br />   A. \u670d\u52a1\u5668\u4e0a\u7684js\u4f1a\u88ab\u770b\u5230\u3002<br />   B. \u670d\u52a1\u5668\u4e0a\u7684js\u4f1a\u88ab\u4e0b\u8f7d\u3002<br /><br />2. \u5f00\u53d1\u5468\u671f<br />   \u771f\u7684\u8c61\u8bf4\u7684\u90a3\u4e48\u8282\u7701\u65f6\u95f4\u5417\uff1f \u6bd4\u5982\u5f00\u53d1\u4e00\u4e2a\u7c7b\u4f3cProject Babel\u7684\u4e1c\u897f\u3002\u9009ROR\u6216\u8005cakephp\u5f00\u53d1\u5feb\u5462\uff0c\u8fd8\u662f\u9009Meteor\u5feb\uff1f<br /><br />3. \u6027\u80fd<br />   \u5141\u8bb8\u901f\u5ea6\u6bd4rails\u7684\u90a3\u4e9b\u6846\u67b6\uff0c\u6216\u8005php\u7684\u90a3\u4e9b\u6846\u67b6\u9ad8\u5417\uff1f<br /><br />4. \u6570\u636e\u5e93<br />   \u76ee\u524d\u53ea\u6709mongodb\u53ef\u4ee5\u7528\u3002\u6709\u6ca1\u6709\u8c61phpMyAdmin\u8fd9\u6837\u7684\u53ef\u89c6\u5316\u5de5\u5177\u5462\uff1f<br /><br />5. \u4ee3\u7801\u600e\u4e48\u5b89\u6392\u6bd4\u8f83\u6e05\u6670\uff1f<br />   \u5b98\u65b9\u4f8b\u5b50\u4e2d\uff0capp\u76ee\u5f55\u91cc\u7684\u5185\u5bb9\uff0c\u4f1a\u53d1\u73b0html\uff0ccss\uff0cjs\u90fd\u653e\u5728\u540c\u4e00\u76ee\u5f55\u4e0b\u3002\u6709\u4e9b\u662f\u5efa\u4e86\u4e00\u4e2aserver\u548cclient\u76ee\u5f55\u6765\u533a\u5206\uff0c\u4e0d\u8fc7\u8fd8\u662f\u611f\u89c9\u6709\u4e9b\u4e71\u3002<br />   \u6709\u6ca1\u4e00\u4e2a\u7edf\u4e00\u7684\uff0c\u6bd4\u8f83\u6e05\u6670\u7684\u683c\u5f0f\u53ef\u4ee5\u53c2\u8003\uff1f<br /><br />6. \u76ee\u524d\u8fd8\u662fbeta\u9636\u6bb5\u3002 \u53ef\u4ee5\u7528\u6765\u5f00\u53d1\u771f\u6b63\u7684\u6bd4\u8f83\u7b80\u5355\u7684\u4ea7\u54c1\u5417\uff1f<br />   \u7b49\u6210\u719f\u7684\u51fa\u6765\u4e86\uff0c\u518d\u5347\u7ea7\u4e0a\u53bb\uff0c\u4f1a\u4e0d\u4f1a\u5f88\u9ebb\u70e6\uff1f<br /><br />\u8c22\u8c22\u3002"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/loddit", 
        "name": "loddit", 
        "avatar": "https://cdn.v2ex.com/avatar/c2be/0c8f/13134_large.png?m=1338089649"
      }, 
      "url": "https://www.v2ex.com/t/54491", 
      "title": "\u5168\u56fd\u94c1\u8def\u6570\u636e\u7684\u53ef\u89c6\u5316app", 
      "id": "https://www.v2ex.com/t/54491", 
      "date_published": "2012-12-09T10:55:45+00:00", 
      "content_html": "\u5176\u5b9e\u6ca1\u600e\u4e48\u5229\u7528 meteor \u7684\u7279\u6027\u4e86\uff0c\u5b8c\u5168\u662f\u51b2\u7740 meteor \u6709 d3 \u652f\u6301\u548c\u90e8\u7f72\u7a7a\u95f4\u7684\u5149\u3002<br /><br />\u5730\u5740\u5728 <a href=\"http://goo.gl/JJpsG\" rel=\"nofollow\">http://goo.gl/JJpsG</a> (\u8ba1\u7b97\u91cf\u6bd4\u8f83\u5927\uff0ccpu\u4e0d\u884c\u7684\u7535\u8111\u614e\u70b9)<br /><br />\u8fd9\u4e2a\u662f\u6211\u7528\u6765\u7ec3\u4e60 nodejs \u6293\u53d6\uff0c\u548c\u7528 d3 \u505a\u6570\u636e\u53ef\u89c6\u5316\u7684\u5c0f\u4f5c\u54c1\u3002<br />\u4ece\u51e0\u4e2a\u7f51\u7ad9\u4e0a(\u6bd4\u5982 trainby.com)\u6293\u4e0b\u4e86\u8f66\u6b21\u4fe1\u606f\uff0c\u518d\u7528 google \u7684 geocoder API \u83b7\u53d6\u5730\u5740\u5750\u6807\u89e3\u6790\u51fa\u6765\u3002\u4f46\u662f\u7ed3\u679c\u90fd\u6709\u4e0d\u51c6\u786e\u7684\u5730\u65b9\uff08\u6574\u4f53\u9519\u8bef\u7387\u4e0d\u8d85\u8fc7 1% \u5427 \u6240\u4ee5\u8fd8\u597d\uff09\uff0c\u53cd\u5e94\u5728\u56fe\u4e0a\u5c31\u662f\u51e0\u4e2a\u83ab\u540d\u5947\u5999\u7684\u70b9\u548c\u7ebf\u8def\u3002<br /><br />todo:<br /> 1 \u589e\u52a0\u7684\u5730\u70b9\u7684hover\u6548\u679c\uff0c\u663e\u793a\u5730\u540d\u4ec0\u4e48\u7684(\u7528\u5e38\u7528\u7684\u65b9\u6cd5\u6bd4\u5982title\uff0cbootstrap \u7684 tooltips \u90fd\u4e0d\u8d77\u4f5c\u7528\u4e86\uff0c\u8fd8\u9700\u8981\u7814\u7a76\u4e0b\u600e\u4e48\u56de\u4e8b)<br /> 2 \u589e\u52a0\u5217\u8f66\u7c7b\u578b\u7684\u533a\u5206\u3002<br /> 3 \u4fee\u590d\u9519\u8bef\u6570\u636e\u811a\u672c\uff0c\u5e76\u5b9a\u671f\u66f4\u65b0\u51c6\u786e\u6570\u636e(\u54ce\uff0c\u8981\u662f\u8fd9\u79cd\u5f00\u653e\u6570\u636e\u6709\u4e2a\u670d\u52a1\u80fd\u63d0\u4f9b\u66f4\u53cb\u597d\u7684 API \u5c31\u597d\u4e86\uff09"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/meteor2013", 
        "name": "meteor2013", 
        "avatar": "https://cdn.v2ex.com/avatar/e9b0/9450/30450_large.png?m=1355010412"
      }, 
      "url": "https://www.v2ex.com/t/54464", 
      "title": "\u8bf7\u95ee\u5982\u4f55\u5b89\u88c5 meteorite\uff08atmosphere \u7684 package\uff09 \uff1f", 
      "id": "https://www.v2ex.com/t/54464", 
      "date_published": "2012-12-09T03:11:52+00:00", 
      "content_html": "~~~<br />   npm install -g meteorite<br />   ~~~<br />\u4e3a\u4ec0\u4e48\u4e0d\u5de5\u4f5c\u554a\uff1f<br /><br />\u8c22\u8c22"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/meteor2013", 
        "name": "meteor2013", 
        "avatar": "https://cdn.v2ex.com/avatar/e9b0/9450/30450_large.png?m=1355010412"
      }, 
      "url": "https://www.v2ex.com/t/54462", 
      "title": "meteor\u662f\u4e2a\u597d\u4e1c\u897f\uff0c\u4f46\u662f\u6d4f\u89c8\u5668\u53ef\u4ee5\u76f4\u63a5\u6539\u6570\u636e\u7684\u95ee\u9898\u600e\u4e48\u89e3\u51b3\u554a\uff1f", 
      "id": "https://www.v2ex.com/t/54462", 
      "date_published": "2012-12-08T23:41:47+00:00", 
      "content_html": "\u6709\u4ec0\u4e48\u5177\u4f53\u7684\u529e\u6cd5\u554a\uff1f"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/loddit", 
        "name": "loddit", 
        "avatar": "https://cdn.v2ex.com/avatar/c2be/0c8f/13134_large.png?m=1338089649"
      }, 
      "url": "https://www.v2ex.com/t/52950", 
      "title": "Meteor 0.5.1 \u53d1\u5e03", 
      "id": "https://www.v2ex.com/t/52950", 
      "date_published": "2012-11-21T03:32:55+00:00", 
      "content_html": "\u535a\u5ba2\u5728 =&gt; <a href=\"http://meteor.com/blog/2012/11/20/meteor-051-database-scaling\" rel=\"nofollow\">http://meteor.com/blog/2012/11/20/meteor-051-database-scaling</a><br /><br />\u91cc\u9762\u53d1\u73b0\u4e86\u4ed6\u4eec\u5728 Trello \u516c\u5f00\u7684\u8def\u7ebf\u56fe =&gt; <a href=\"http://roadmap.meteor.com\" rel=\"nofollow\">http://roadmap.meteor.com</a><br /><br />\u611f\u89c9\u6bcf\u6b21\u66f4\u65b0\u7684\u5185\u5bb9\u8fd8\u86ee\u591a\u7684\uff0c\u76ee\u524d\u770b\u771f\u662f\u751f\u547d\u529b\u5f88\u5f3a\u7684\u9879\u76ee\uff0c\u4e0d\u77e5\u9053\u4f7f\u7528\u7740\u5df2\u7ecf\u6709\u591a\u5c11\u4e86?<br /><br /><br />\u6458\u90e8\u4efd\u66f4\u65b0\u90ae\u4ef6\u7684\u5185\u5bb9\uff1a<br /><br />Here's the highlights in 0.5.1:<br /><br />Meteor's realtime Mongo driver now allows multiple clients to share the results of identical database queries, dramatically reducing database query load for many applications. More details below.<br /><br />We wrote a more sophisticated latency compensation algorithm on the client. For a full description of this change, see David's blog post.<br /><br />On the client, a method's completion callback now runs after the method's mutations are fully in the client database. The previous behavior of running as soon as the server returns the method's result is still available. See <a href=\"http://docs.meteor.com/#meteor_apply\" rel=\"nofollow\">http://docs.meteor.com/#meteor_apply</a>.<br /><br />We improved the transition between logged-out and logged-in database states, replaced Meteor.userLoaded with Meteor.loggingIn, and made a few other minor changes to the Accounts APIs."
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/lin", 
        "name": "lin", 
        "avatar": "https://cdn.v2ex.com/avatar/fe9f/c289/83_large.png?m=1773678072"
      }, 
      "url": "https://www.v2ex.com/t/52207", 
      "title": "Meteor-BBS\u53ef\u6709\u5220\u5e16\u3001\u6539\u5e16\u3001\u79fb\u5e16\u7b49\u529f\u80fd\uff1f", 
      "id": "https://www.v2ex.com/t/52207", 
      "date_published": "2012-11-09T07:53:26+00:00", 
      "content_html": "@<a href=\"/member/chuangbo\">chuangbo</a> @<a href=\"/member/yonggao\">yonggao</a>"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/chuangbo", 
        "name": "chuangbo", 
        "avatar": "https://cdn.v2ex.com/avatar/f5de/aeea/584_large.png?m=1677808727"
      }, 
      "url": "https://www.v2ex.com/t/50271", 
      "title": "Meteor 0.5.0: \u6570\u636e\u5e93\u6743\u9650\u63a7\u5236\u3001\u8d26\u6237\u7cfb\u7edf\u548c\u65b0\u7684\u89c6\u9891\u6559\u7a0b", 
      "id": "https://www.v2ex.com/t/50271", 
      "date_published": "2012-10-18T01:31:43+00:00", 
      "content_html": "<a target=\"_blank\" href=\"http://meteor.com/blog/2012/10/18/meteor-050-authentication-user-accounts-new-screencast\" rel=\"nofollow\">http://meteor.com/blog/2012/10/18/meteor-050-authentication-user-accounts-new-screencast</a><br />\u89e3\u51b3\u4e86\u6570\u636e\u5e93\u95ee\u9898\u4ee5\u540e\uff0c\u7ec8\u4e8e\u8fbe\u5230\u57fa\u672c\u7684 production ready \u4e86\u3002\u8d26\u6237\u7cfb\u7edf\u7684 API \u5c01\u88c5\u7a0b\u5ea6\u975e\u5e38\u9ad8\uff0c\u751a\u81f3\u5305\u62ec\u4e86\u91cd\u8bbe\u5bc6\u7801\u7b49\u903b\u8f91\u3002"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/chuangbo", 
        "name": "chuangbo", 
        "avatar": "https://cdn.v2ex.com/avatar/f5de/aeea/584_large.png?m=1677808727"
      }, 
      "url": "https://www.v2ex.com/t/50210", 
      "title": "Meteor-BBS v0.2 \u53d1\u5e03\uff0c\u652f\u6301 QQ \u767b\u5f55\u548c\u7b80\u5355\u7684\u6743\u9650\u63a7\u5236\u4e86", 
      "id": "https://www.v2ex.com/t/50210", 
      "date_published": "2012-10-17T05:33:50+00:00", 
      "content_html": "\u8fd9\u662f\u4e00\u4efd\u5bf9 Project Babel 3 \u7684\u514b\u9686\uff0c\u7528 Meteor \u5199\u6210\u3002<br />DEMO: <a target=\"_blank\" href=\"https://meteor-bbs.meteor.com\" rel=\"nofollow\">https://meteor-bbs.meteor.com</a><br />github: <a target=\"_blank\" href=\"https://github.com/chuangbo/meteor-bbs\" rel=\"nofollow\">https://github.com/chuangbo/meteor-bbs</a><br />QQ\u767b\u5f55\u548c\u6743\u9650\u63a7\u5236\u662f @<a href=\"/member/yonggao\">yonggao</a> \u53d1\u8d77\u7684 pull request\uff0c\u611f\u8c22\uff01<br /><br />\u76f8\u5173\u8ba8\u8bba<br />1. <a href=\"/t/48084\">/t/48084</a> \u7528 Meteor \u514b\u9686\u4e86\u4e00\u4e2a\u5b9e\u65f6\u7684 V2EX<br />2. \u65e7 Demo \u5730\u5740 <a target=\"_blank\" href=\"https://dnspod-bbs.meteor.com\" rel=\"nofollow\">https://dnspod-bbs.meteor.com</a><br />3. \u7406\u8bba\u4e0a\u8fd8\u652f\u6301 Github/Google/Twitter/\u65b0\u6d6a\u5fae\u535a/Facebook <a target=\"_blank\" href=\"http://auth-docs.meteor.com/#meteor_loginwithexternalservice\" rel=\"nofollow\">http://auth-docs.meteor.com/#meteor_loginwithexternalservice</a>"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/chuangbo", 
        "name": "chuangbo", 
        "avatar": "https://cdn.v2ex.com/avatar/f5de/aeea/584_large.png?m=1677808727"
      }, 
      "url": "https://www.v2ex.com/t/50194", 
      "title": "Secure Remote Password protocol", 
      "id": "https://www.v2ex.com/t/50194", 
      "date_published": "2012-10-17T02:54:27+00:00", 
      "content_html": "<a target=\"_blank\" href=\"http://en.wikipedia.org/wiki/Secure_Remote_Password_protocol\" rel=\"nofollow\">http://en.wikipedia.org/wiki/Secure_Remote_Password_protocol</a> <br />Meteor \u91c7\u7528\u7684\u4f20\u8f93\u5bc6\u7801\u7684\u65b9\u5f0f<br /><a target=\"_blank\" href=\"http://auth-docs.meteor.com/#meteor_loginwithpassword\" rel=\"nofollow\">http://auth-docs.meteor.com/#meteor_loginwithpassword</a>"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/chuangbo", 
        "name": "chuangbo", 
        "avatar": "https://cdn.v2ex.com/avatar/f5de/aeea/584_large.png?m=1677808727"
      }, 
      "url": "https://www.v2ex.com/t/48354", 
      "title": "Installer & smart package manager for Meteor - Meteorite", 
      "id": "https://www.v2ex.com/t/48354", 
      "date_published": "2012-09-20T16:52:15+00:00", 
      "content_html": "\u9879\u76ee\u5730\u5740 <a target=\"_blank\" href=\"http://oortcloud.github.com/meteorite/\" rel=\"nofollow\">http://oortcloud.github.com/meteorite/</a><br />\u8fd9\u662f\u5305\u7d22\u5f15 <a target=\"_blank\" href=\"https://atmosphere.meteor.com/\" rel=\"nofollow\">https://atmosphere.meteor.com/</a><br /><br /><br />\u6ca1\u60f3\u5230\u5bf9\u4e8e\u4e00\u4e2a\u8fd8\u5728 preview \u7684\u5e93\uff0c\u53ea\u770b Release \u7684\u6587\u6863\u4e5f\u4f1a\u9519\u8fc7\u5f88\u591a\u6d3b\u8dc3\u7684\u4e1c\u897f\uff0c\u4f5c\u8005\u4eec\u8fd8\u662f\u633a\u4fdd\u5b88\u7684\u3002"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/chuangbo", 
        "name": "chuangbo", 
        "avatar": "https://cdn.v2ex.com/avatar/f5de/aeea/584_large.png?m=1677808727"
      }, 
      "url": "https://www.v2ex.com/t/48084", 
      "date_modified": "2012-09-19T10:45:21+00:00", 
      "content_html": "\u6211\u5f88\u559c\u6b22 V2EX\uff0c\u4e00\u76f4\u60f3\u5728\u56e2\u961f\u5185\u90e8\u642d\u5efa\u4e00\u4e2a\uff0c\u65b9\u4fbf\u79ef\u7d2f\u77e5\u8bc6\uff0c\u4f46\u662f @<a href=\"/member/Livid\">Livid</a> \u8fdf\u8fdf\u4e0d\u5f00\u6e90 PB3\uff0c\u4e5f\u56e0\u4e3a\u7a0b\u5e8f\u5458\u6742\u5fd7\u7684\u4e00\u7bc7\u7ea6\u7a3f\uff0c\u6211\u7ee7\u7eed\u5b9e\u8df5 Meteor\uff0c\u5c71\u5be8\u4e86 V2EX \u7684\u4e00\u5c0f\u90e8\u5206\u529f\u80fd\u3002 <br /><br />\u53ea\u5b9e\u73b0\u4e86\u8282\u70b9\u3001\u4e3b\u9898\u3001\u56de\u590d\u529f\u80fd\uff0c\u552f\u4e00\u7684\u6539\u52a8\u5c31\u662f\u652f\u6301\u4e86\u5355\u4e3b\u9898\u591a\u8282\u70b9\uff08\u611f\u8c22 Mongodb\uff09\uff0c\u5f53\u7136\u8fd8\u6709\u5b9e\u65f6\uff08\u611f\u8c22 Meteor <br /><br />\u56e0\u4e3a\u662f\u6211\u4eec\u5185\u90e8\u4f7f\u7528\u7684\uff0c\u6ca1\u6709\u5b9e\u73b0\u5e10\u53f7\u7cfb\u7edf\uff0c\u53ea\u80fd\u7528 DNSPod \u5e10\u53f7\u767b\u5f55\u3002 <br /><br />\u76f8\u6bd4\u4e0a\u6b21\u7684\u5206\u4eab\u7684\u662f\uff0cMeteor \u4fee\u590d\u4e86\u4e0d\u5c11 Bug\uff0c\u5199\u8d77\u6765\u4e0d\u9700\u8981\u90a3\u4e48\u591a Hack \u4e86\uff0c\u4f46\u662f\u4f9d\u7136\u5b58\u5728\u8bb8\u591a\u95ee\u9898\uff0c\u6bd4\u5982\u5237\u65b0\u5076\u5c14\u975e\u5e38\u6162\uff0c\u6570\u636e\u5f88\u4e45\u90fd\u8f7d\u5165\u4e0d\u51fa\u6765\uff0c\u4f46\u662f\u5220\u6389\u53f3\u4fa7\u680f\u5c31\u597d\u4e86\u3002\u3002 <br /><br />\u5927\u5bb6\u611f\u5174\u8da3\u53ef\u4ee5\u8bd5\u8bd5\uff0c\u6709\u4efb\u4f55\u5173\u4e8e Meteor \u7684\u95ee\u9898\u6211\u90fd\u5f88\u4e50\u610f\u4e0e\u5927\u5bb6\u8ba8\u8bba\u3002<br /><br /><a target=\"_blank\" href=\"http://dnspod-bbs.meteor.com/t/cf0737d1-e4b6-4409-8c30-c4c595f9f235\" rel=\"nofollow\">http://dnspod-bbs.meteor.com/t/cf0737d1-e4b6-4409-8c30-c4c595f9f235</a><br /><br />\u6700\u540e\uff0c\u611f\u8c22 @<a href=\"/member/Livid\">Livid</a> \u548c\u4ed6\u7684 V2EX\uff01\uff01\uff01\uff01", 
      "date_published": "2012-09-19T10:42:48+00:00", 
      "title": "\u7528 Meteor \u514b\u9686\u4e86\u4e00\u4e2a\u5b9e\u65f6\u7684 V2EX", 
      "id": "https://www.v2ex.com/t/48084"
    }
  ]
}