English | 中文
ob.js
ob.js comes from Vue.js. It's a small, efficient library for observing changes to javascript Object, Array and Class.
Installation
npm install --save ob.js
or
bower install --save ob.js
Usage
ob.watch(target, expression, callback)
or ob(target, expression, callback)
To watch expression.
const target = a: 1targeta = 3// 3 1
ob.compute(target, name, getter)
To add computed property.
const target = a: 1obconsole// 2targeta = 3console// 6
ob.react(options)
To watch expressions and computed properties.
const options =data:PI: MathPIradius: 1computed:{return thisPI * this // πr²}watchers:{console}methods:{return num * num}const target = obtargetradius = 3// area: 28.274333882308138
API
properties
name | type | value | detail |
---|---|---|---|
ob.deep |
Boolean |
The default is false |
If true , ob.watch(target, expression, callback) will observe target deeply |
ob.sync |
Boolean |
The default is false |
If true , ob.watch(target, expression, callback) will invoke callback immediately when a property change is detected |
ob.default |
Function |
Could only be one of ob.react , ob.watch and ob.compute . The default is ob.watch |
Set actual method to ob.default for ob(...) |
methods
ob(...)
- It's syntactic sugar of
ob.default
. See 'properties' for details
ob.watch(target, expression, callback)
target
: Any objectexpression
:String
orFunction
callback
:Function
- Returns
Watcher
. And callingwatcher.teardown()
could unwatch expression
ob.compute(target, name, accessor, cache)
target
: Any objectname
:String
accessor
:Function
: It will be theget
of accessorObject
: Contains: (at leastget
orset
)get
:Function
set
:Function
cache
:Boolean
. Optional. The default istrue
. Iffalse
, theget
will be evaluated whenever reading computed properties
cache
:Boolean
. Same asaccessor.cache
ob.react(options, target)
options
:Object
. Contains:data
: It's the properties to addcomputed
: It's the computed properties to addwatchers
: It's the watchers to watch properties or computed propertiesmethods
: The methods to add. And these will bind totarget
target
: Any object. Optional. The default is empty object. It will be attached with the fields ofoptions
- returns
target