我正在寻找一个骨干/ require.js应用的示例。
我有以下代码:
define([
'jquery',
'underscore',
'backbone',
// Pull in the Collection module from above,
'models/project/ProjectModel',
'collections/projects/ProjectsCollection',
'text!templates/projects/projectsListTemplate.html'
], function($, _, Backbone, ProjectModel, ProjectsCollection, projectsListTemplate){
var ProjectListView = Backbone.View.extend({
el: $("#projects-list"),
render: function(){
var data = {
projects: this.collection.models,
_: _
};
var compiledTemplate = _.template( projectsListTemplate, data );
$("#projects-list").html( compiledTemplate );
}
});
return ProjectListView;
});
有人能解释一下代码的含义吗?
_: _
答案 0 :(得分:2)
简答:他们在_
对象中为_
分配data
值。就像projects
被分配this.collection.models
一样。
更长的回答:通过执行此操作,您将创建对_
的本地引用,因此在执行程序时,无需查看范围树,即可查找_
。但是,这确实不需要,因为它很可能不会对性能产生任何明显的影响。
事情是还有一百万个其他更大的瓶颈,所以你很可能永远不会注意到差异。例如,您的示例使用require.js
test.js
插件,该插件可根据需要加载外部文件。但是,这意味着在您的应用程序可以使用该文本模板之前,它必须成功完成GET请求。这意味着应用程序可能必须等待10毫秒到200毫秒,然后才能对模板执行任何操作。因此,仅使用_:_
使用{{1}}所带来的任何性能提升都会被淹没。