Meteor 全端框架初识

简介

Meteor 是一个极其简单的纯JS全栈式框架,后端就是 Node.js 和 Mongodb,可以用来开发 web 和 app,app 的话就是以 WebView 的形式,然后 cordova 打包,Metetor 提供详细的命令行工具来实现APP的开发和构建。 官方声称它可以将过去几天甚至几周的工作缩减到几个小时内完成,今天笔者就简单了解一下这个框架和它的一些机制,以及它能够做哪些事,不能做哪些事。

特性和原则

在想要去了解一个框架之前,首先就要了解这个框架的官方声称的特性(Features)或原则(Principles),Meteor最大的特点有以下几点:

  1. 乐观UI机制,实时反应用户的交互,在用户发生交互的时候改变UI,同时将改变发送给后端,而且这些机制都是基于 WebSocket 的,跟传统的 Web 技术架构(Http Request & Response)有很大不同。
  2. 强大得命令行工具,初始化项目(包括根据模板搭建初始化架构)、下载依赖、删除依赖等都使用一个统一的命令行工具 meteor
  3. 前后端大混合,所写的代码全是JS,Meteor会有规则区分哪些是后端,哪些是前端,但是大多数API都是前后端都可以使用的,基本上没有前后端之分
  4. 与 Mongodb 深度结合,数据操作的语法就是 Mongodb 的各种命令
  5. 反应式(reactive),Meteor 专门针对反应式进行设计,方便进行双向数据绑定,它提供了很多对象和API来完成这件事,比如 Session, template.helpers

一些核心编程模型

  • Template: 视图,Meteor 特有的模板引擎,它拥有自己的模板策略,Meteor 不会返回 HTML 给客户端,而是返回 data ,然后在客户端渲染,因此它设计了一个自己的模板策略,即 head + body + template,此外 Template 能做的事还有很多,可以说是 Meteor 中最重要的概念,需要重点掌握
  • Collections: Meteor 中存储数据的一层,前后端都可以访问它,很方便在双端操作数据。
  • Session: Meteor 也有 Session 的概念,只不过此 Session 不是彼 Session,这个 Session 是反应式对象,主要用来存储客户端的临时数据

一个使用Meteor做的小案例

Potter 是一个静态页面发布工具,使用 Meteor 进行开发的,主要是在浏览器中编辑HTML页面并发布至七牛服务器上。

简单总结

Meteor 还是一个比较创新的框架,核心是使用 WebSocket 进行前后端的通信,然后还集成了发布订阅模式、炙手可热的 Reactive 机制以及一些成熟的开发包用以提升开发效率,如果是做小型项目,还是推荐一试的。