+
96
-

Meteor与Polymer有什么不同?

Meteor与Polymer有什么不同?

网友回复

+
16
-

polymer由谷歌的Palm webOS团队打造,并在2013 Google I/O大会上推出,旨在实现Web Components,用最少的代码,解除框架间的限制的UI 框架。

Everything is an element,一切皆组件,是polymer的核心思想 polymer 可以通过Twitter的包管理器bower,方便的进行组件(Elements)及包的依赖管理,不必自己从git上下载组件。 polymer分层结构: 元素层(Elemets), 分为UI elements(如select、tab)、 non-UI elements(如ajax、animate) 核心层:polymer.html+polymer.js,是创建polymer element的必要依赖。 基础层:platform.js,是平台兼容,和响应式代码实现的必要依赖,创建应用必须首先引入它。其中大部分API最终将成为原生浏览器API。 通过<link rel="import" href="component-name.html">方式引入组件,即Web Components的Imports规范。 Web Components是polymer的一个很重要的基础,我们有必要来了解一下: Web Components 它是一些规范,旨在以浏览器原生的方式向外提供组件,它的规范如下 1、模板(Templates) 可以将不必立即渲染的元素,不必立即执行的脚本放入这里。 2、装饰器(Decorators) 3、Shadow DOM 4、自定义元素(Custom Elements), 实现自定义html标签,及属性。拥有同原生组件一样的生命周期 5、Import...

点击查看剩余70%

+
15
-

Meteor.js一个完全统一前后台开发的一站式框架, 从后台数据库到前端view全部包含在内, 特别适合于重度依赖websocket的SPA(单页面应用)开发, 国外流行的Asana就是完全采用Meteor框架开发.

Meteor能让你打造非常动态的的网页同时代码量出乎意料之少. 记住一点,Meteor目前还在一个超级测试的版本(原文发布时候为 preview 0.3.8, 翻译时为 preview 0.5.7). 所以, 请不要因为工作的不够完美而感到意外. Meteor是基于Node.js, 因此, 你所写的大部分代码也将会是JavaScript. 这没什么好惊奇的. 如果你想要一些好的资源来快递提高你的JavaScript, 可以看一看 JavaScript Garden. Meteor存储数据所使用的是MongoDB. 尽管如此, 实际上,Meteor使用的是minimongo作为接口. 它只是拥有相对完整的功能而非标准MongoDB的所有功能. 你并不需要确切地知道MongoDB是如何工作的, 但我还是建议你看一看Meteor 的Collections文档以便知道你能做些什么. Meteor目前使用的模板引擎只能是 handlebars. 但在未来支持使用别的模板引擎也是很有可能的.(翻译该文章时已经支持使用其他的如 Jade ) 最后, 只要你开发网站, 了解 HTML 和 CSS 都是必须的. 基础 一个Meteor项目包含的大多都是JavaScript文件. 如果你放置任意一个 *.js文件在你的项目的任何位置, Meteor会自动帮你加载并运行之. 你在Meteor项目中写的每一个JavaScript文件都会被部署到服务端和客户端(额...也不完全是这样的,继续往下看吧!). 之所以Meteor这么,这么的cool,原因之一就是:当你写了一个JavaScript函数,在客户端和服务端都可以使用之! 更cool的是, 比如,你在项目的任意一个地方放置*.less, 那么这些文件都会自动被编译并发送至客户端以及从而包含进页面当中. 有时候,可能你希望分离开服务端和客户端的代码. 幸运地是, Meteor有这么一对标识可以帮你:Meteor.is_server和Meteor.is_client 下面的例子在浏览器的JavaScript控制台中会输出Hi. I’m CLIENT,而在服务端中则会输出 Hi. I’m SERVER

// This function is available on both the client and the server.
var greet = function(name) {
console.log("Hi. I'm " + name);
}

// Everything in here is only run on the server.
if(Meteor.is_server) {
greet("SERVER");
}

// Everything in here is only run on the client.
if(Meteor.is_client) {
greet("CLIENT");
}
这非常的简单. 在客户端和服务端共用代码使你能够做到最大化的代码复用,这大大地减少了开发时间. 项目文件结构 可能, 你无数次地希望不再服务端和客户端之间共享所有的一切. 比如你有一些私密的算法在服务端执行,而你绝不希望Meteor把这些算法发送至客户端让全世界都看得见. Meteor提供了两个"特殊"的目录来帮助分离客户端和服务端的代码:[project_root]/client/和[project_root]/server/. 在server目录的JavaScript只会在服务端执行而不会发送至客户端, 反之亦然. 这就使得我们无须在各个地方都使用Meteor.is_client 和 Meteor.is_server.取而代之, 对应的放置你的代码就OK了. 项目的文件结构非常重要, 尤其在考虑到文件的先后加载顺序的时候. 假定有两个文件, 其中一个依赖于另外一个, 你知道你的JavaScript的加载顺序吗? 其规则如下: [project_root]/lib里的文件会最先被加载. 显而易见的, 库需要放在这个文件 文件会根据目录的深度来进行加载排序,放在深一层的文件会先加载 同一级的文件会按照字母顺序来排序加载. main.* 会最后加载, 当有代码需要在其他所有的库或脚本之后执行这会很有用. Meteor有一些特殊的目录来帮助你解决分离 client/server的代码以及加载的顺序: [project_root]/lib/ 该目录下的代码会在你的 client/server 代码执行之前加载 [project_root]/client/ 这个目录下的代码只会在浏览器端而不会在服务端执行 [project_root]/server/ 这个目录下的代码只会在服务端而不会客户端执行 [project_root]/public/ 静态文件放在这个目录下, 并且你可以很轻松地在你的html中指向 image.jpg [project_root]/.meteor/ 一些特殊的,和项目相关的的信息放在这里, 比如你安装...

点击查看剩余70%

我知道答案,我要回答