Skip to content

tmeasday/meteor-deps-extensions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#Some reactive helpers for meteor

##Install

Use meteorite: Then add via:

mrt add deps-extensions

##Usage

###Adding Reactive Variables

 Meteor.deps.add_reactive_variable(object, 'something', default_value)

Which adds three functions to object: object.something(), object.something.set() and object.something.equals() which behave reactively.

###Using reactive contexts

####repeat

Meteor.deps.repeat(fn)

Repeatedly call fn, once each time the dependencies that it uses changes. For example:

Meteor.deps.repeat(function() {
  console.log("current_post_id is: " Session.get('current_post_id'));
});

####isolate

Meteor.deps.isolate(fn)

Kill all reactivity inside fn, so that the current context isn't ever invalidated by that code. Returns the result of fn. For example:

Meteor.deps.isolate(function() {
  return Comments.find({}, {order: {score: 1}});
});

Will return a list of comments that is 'unreactive' and thus won't reorder as the user reads them.

####await

 Meteor.deps.await(predicate, cb)

Repeatedly (reactively) call predicate until it's true, then call cb once only. For example

Meteor.deps.await(function() { return Router.current_page() === 'home'; }, function() {
  alert('Welcome to my site! Nice to see you!');
});

####memoize

 Meteor.deps.memoize(fn)

Returns a function that wraps fn in a context, so that fn's reactivity can be maintained, whilst minimizing the number of calls to it. Example:

var cheapReactiveFn = Meteor.deps.memoize(function() {
  return expensiveReactiveFn();
});

Now reactiveFn can be called many times, but expensiveReactiveFn will only get called once (per value it returns);

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published