backbone小点

要注意是集合的方法还是模型的方法还是jQuery的方法
注意传参需要的类型返回类型使用方法


on和listenTo
  • on 就是对object的事件监听
  • listenTo是对其他object的触发事件进行监听,比如view要在model改变时做处理之类的情况,灵活一些

Collection中的添加和删除
  • 添加
    1.books.add(books.models[2]);向集合中的指定位置插入模型,如果没有指定位置,默认追加到集合尾部
    2.books.push();将模型追加到集合尾部(与add方法的实现相同)
    3.books.unshift();将模型插入到集合头部
  • 删除
    1.books.remove(books.models[2]);从集合中移除一个或多个指定的模型对象
    2.books.pop();移除集合尾部的一个模型对象
    3.books.shift();移除集合头部的一个模型对象
    :添加和删除的方法都不止一种,区别只是添加和删除的位置不同

Collection中的查找

Collection定义了一系列用于快速从集合中查找我们想要的模型的方法,包括:
1.get():根据模型的唯一标识(id)查找模型对象
2.getByCid():根据模型的cid查找模型对象
3.at():查找集合中指定位置的模型对象
4.where():根据数据对集合的模型进行筛选


Backbone.Router更侧重前端单页应用的导航

collection-reduce

_.reduce(list, iteratee, [memo], [context])

  • reduce方法把list中元素归结为一个单独的数值。
  • Memo是reduce函数的初始值,会被每一次成功调用iteratee函数的返回值所取代 。
  • 如果没有memo传递给reduce的初始调用,iteratee不会被列表中的第一个元素调用。第一个元素将取代memo参数传递给列表中下一个元素调用的iteratee函数。
var sum = _.reduce([1, 2, 3], function(memo, num){ return memo + num; }, 0);
=> 6

backbone小点_第1张图片

flatten

将一个嵌套多层的数组 array(数组) (嵌套可以是任何层数)转换为只有一层的数组。 如果你传递 shallow参数,数组将只减少一维的嵌套。

_.flatten([1, [2], [3, [[4]]]]);
=> [1, 2, 3, 4];

_.flatten([1, [2], [3, [[4]]]], true);
=> [1, 2, 3, [[4]]];


pick _.pick(object, *keys)

返回一个object副本,只过滤出keys(有效的键组成的数组)参数指定的属性值。或者接受一个判断函数,指定挑选哪个key。

_.pick({name: 'moe', age: 50, userid: 'moe1'}, 'name', 'age');
=> {name: 'moe', age: 50}

_.pick({name: 'moe', age: 50, userid: 'moe1'}, function(value, key, object) {
  return _.isNumber(value);
});
=> {age: 50}

前端数据和后端数据同步
collection保存数据,需要fetch与后端数据进行同步。
否则后端数据修改,而collection仍会是之前的旧数据


模块的加载

在ES6之前,社区制定了一些模块加载方案,最主要的有CommonJS和AMD两种。前者用于服务器,后者用于浏览器。ES6在语言规格的层面上,实现了模块功能,而且实现得相当简单,完全可以取代现有的CommonJS和AMD规范,成为浏览器和服务器通用的模块解决方案。

你可能感兴趣的:(backbone小点)