Meteor 响应式

如果说集合是meteor的核心功能,那么响应式可以能让这个核心 功能更强大。

集合从根据上改变你的应用程序的数据处理方式。

而不必手动检查数据更改,再根据这些变化 去修改html页面,meteor可以随时

检测到数据的更改,并将它无缝地应用到你的用户界面上。

meteor函数响应式计算            可以触发变化 的响应式数据源

Templates                        session变量

Tracker.autorun                  Collection的数据库请求

Template.autorun                Meteor.status

Blaze.render                    Meteor.user

Blaze.renderWithData            Meteor.userId

调用响应式数据

实时性的方法是通过使用.observe(),当指向数据的指针发生改变时就会触发

回调。

Posts.find().observe({

added:function(post){

//jq处理添加标签

},changed:function(post){

//jq修改变化 的标签

},removed:function(post){

//jq删除指定数据的标签

}

})

声明式方法的核心是响应式,这种声明让我们定义了对象之间的关系,

并让他们保持同步,而我们就不必为每个的可能发生的修改去指定相应的行为。

响应式变量


1、reactiveVar介绍

不同于内置的session,ReactiveVar要添加一个包:

meteor add reactive-var

和session十分相似只有一些区别:

ReactiveVars没有全局的名称,像"foo"和session.get("foo")

相反,它们是在本地创建或使用,例如,添加一个模板实例,像this.foo.get()一样。

Reactivevars没法有自动在hot code pushes迁移,但是session状态是.

它可以设置成任何值,但session只能限制为json和ejson

2、ReactiveVar使用场景\

模板变量.reactiveVarName.set(0)

模板变量.reactiveVarName.get()

this.aa.set()

this.aa.get()

reactivevar的使用和session不同,我们需要在模板实例中获得它。

这是因为这样使得我们能够在整个模板中获得reactivevar,无需使用全局

的session变量,并创建一个响应式的数据源来连接模板实例。


Meteor.startup(function(){

Tracker.autorun(function(){console.log('There are '+ Posts.find().count() +' posts');

});

});

你可能感兴趣的:(Meteor 响应式)