Meteor资源国外优秀web APP 收藏

一款新鲜出炉的现代网站开发平台——Meteor.js

Meteor.js是建立在node.js上的一个开源平台,用于快速构建“现代化”实时Web应用。

如果你对Meteor.js非常感兴趣,可以参考Meteor Roadmap

JavaScript

对前端库/框架进行了解外,比如jQuery或者MooTool,还需要了解JavaScript这门语言,所以在学习之前,对JavaScript进行一番了解则是必然的。

常用的Meteor资源

掌握JavaScript的一些基础知识后,你就可以投入到Meteor的学习中了。由于Meteor.js旨在彻底简化App的开发,所以你很快就会看到成果。

编码教程

代码案例

下面是我们从Github上发现的一些使用Meteor.js开发的代码示例:

测试

产品必读

完成代码编写工作并且对App进行测试,但如果你想让该款App能在市场中存活下来的话,那么下面提供的信息你可能会很感兴趣。

对于初学者来说,利用业余时间多看一些书籍是个不错的选择,它们能给你提供结构化的指导和一些系统概念。

相关框架



在过去6个月里,我使用Meteor做了点东西(Telescope,Meteor开源的主要应用程序之一),我觉得有必要和大家分享一下我对Meteor的使用心得和感受。

 

首先声明:在和Meteor代码打交道的日子里,我的大部分时间都在使Telescope变更加可用,而不是去深入挖掘Meteor,所以我不敢自称是Meteor方面的专家,而之所以能很快上手,很大一部分原因是因为它是一个非常好用且高效的框架,即使在你不精通的情况下也能开发出非常出色的应用。

简单 智能

Meteor的一大特色就是可以轻松构建高品质的实时Web应用程序,相信很多程序员都是因为这一特性而熟知Meteor的。当开始使用Meteor时,会让你的生活变得很简单。

安装Meteor也非常简单,只需一行命令即可。随即便创建第一个应用程序,就连部署也都非常简单。由于Meteor提供免费的托管,因此你可以在线部署,供世界各地的人来浏览。

 

此外,使用Meteor编写的应用程序运行速度也非常快。例如,当你的项目引用JS或CSS文件时,这些文件将会被自动加载,而Meteor也提供了内置的用户管理,自动完成UI部件的加载。

Meteor九大特性

  1. 纯JavaScript
  2. 实时页面更新
  3. 干净、强大的数据同步
  4.  延迟补偿
  5. 代码热推送
  6. 敏感代码运行于受限环境中
  7.  完全独立的应用包
  8. 互操作
  9. 智能的包

实时的未来

说实话,实时框架是Meteor的最大卖点,实时Web应用程序会让人联想到多人游戏和实时在线文档编辑,但在使用Meteor时,我快速发现实时也可以编写出更加实用且非常好的应用程序,而这种实时很有可能会成为未来几年内Web应用程序的默认编写方式。

在桌面应用系统中,如果一个目录被两个窗口同时打开,那么当你在其中一个窗口删除一个文件后,你必须刷新另一个窗口,那个文件才会“消失”。因此,这就缺乏了实时性,而Meteor框架就可弥补这方面的不足。

此外,实时也影响到我们的编码风格。你无需刷新页面或使用特定的回调逻辑来使应用程序做出响应:每一个块数据都会自动监测、任何与UI元素有关的数据也会自动更新。

下面提供一个案例,一旦有人投票,就响应upvote按钮的“disable”类,模板代码(Meteor使用Handlebars):

[html]  view plain copy
  1. <div class="post">  
  2.   <a href="#" class="upvote btn {{upvotedClass}}"><a />  
  3.   <h3><a href="{{url}}">{{title}}</a></h3>  
  4. </div>  

下面是与之匹配的控制器代码:

[js]  view plain copy
  1. Template.post.helpers({  
  2.   upvotedClass: function() {  
  3.     // test if user is logged in, and if their userId   
  4.     // is included in the 'upvoters' array  
  5.     var userId = Meteor.userId();  
  6.     if (userId && !_.include(this.upvoters, userId)) {  
  7.       return 'upvoteable';  
  8.     } else {  
  9.       return 'disabled'  
  10.     }  
  11.   }  
  12. });  

这段代码妙在何处呢?如果用户的userid从upvoters数组中删除(例如,实现一个“cancel upvote”操作),就会自动在UI上反应出来,无需编写额外的代码。

一切就绪了吗?

现在,你可能会随着这一行行代码思考些东西:“好,它看起来很棒,但是它真的就可以作为现实应用( real-world apps)吗?”

答案肯定是依情况而定。Meteor当然可以作为现实应用使用。Telescope和Sidebar(基于Telescope)就是非常完美的例子。

但并不是说Meteor就可以完全作为现实应用使用。Meteor没有服务端渲染功能,有些网站对加载速度要求特别高,比如电子商务网站,而有些则需要在旧的/老的设备上运行,比如过时的手机。

Meteor Book

目前,我和 Tom Coleman(Meteor开源生态系统的主要贡献者之一,创建Meteor包管理器Meteorite)正在专注于 The Meteor Book,教你如何使用Meteor编写基本的应用程序。

更多精彩内容,大家可以来到Hacker News上和我一起 探讨。(编译/张红月 责编/付江)


学习资料:

官方提供的3个示例:

GitHub项目页:

Meteor@StackOverflow

文档:

FAQ:

来自英文: thechangelog

来自英文:Best Learning Resources for Meteor.js

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值