BackboneJs 入门学习[11]—View 实践

立创开源桌面激光雕刻机DIY全解析:从悬臂结构、Arduino主控到Marlin固件 本文详细解析了基于立创开源平台的桌面激光雕刻机DIY全过程。重点介绍了悬臂式机械结构的设计与优化,阐述了采用Arduino Mega 2560主控与RAMPS 1.4扩展板的经典控制方案,并深入讲解了Marlin固件的关键配置步骤,包括电机步数计算与激光功能启用,为创客和电子爱好者提供了一套完整的从硬件搭建到软件调试的实战指南。 阅读详情

⭐️ 本文首发自 前端修罗场(点击即可加入),一个专注 Web 技术、答疑解惑、面试辅导、职业发展的社区。现在加入,即可参与打卡挑战,和一群人一起努力。挑战成功即可获取一次免费的模拟面试机会,进而评估知识点的掌握程度,获得更全面的学习指导意见,不走弯路,不吃亏!


BackboneJs入门学习—View实践篇

假期过的还好么?哈哈,国庆跑去耍啦~确实累着了,一躺下就是睡……_

OK,继续我们的 Backbone 学习之旅吧!

上一篇中,我们只是简单的介绍了 View 模块,讲解了 View 的概念。

本篇中,我们讲解 View 的相关属性;

1.el属性:

el属性是做何用呢?在Backbone的官方文档中作如下解释:

所有的视图都拥有一个 DOM 元素(el 属性),即使该元素仍未插入页面中去。 视图可以在任何时候渲染,然后一次性插入 DOM
中去,这样能尽量减少 reflows 和 repaints 从而获得高性能的 UI 渲染。

即:
(1). 用于引用 Dom 中的一些元素,每个 Backbone 的 View 属性都有这种 el 属性;
(2). 若没有声明 el,会默认构造一个,表示一个空的 div 元素;
看一个示例:

searchView=Backbone.view.extend({
	initialize:function(){
		//this.render();
   },
   render:function(){
	//使用underscore这个库来编译模版
	var templete=_.templete($('#search_templete').html().{});
	//加在模块到对应的el属性中
	this.el.html(templete);
  }
});
var searchView=new searchview({el:$("#search_container")});
searchView.render();
//模版
<script id="search_templete">
	<label><%=search_label%></ label>
	<input type="text" id="search_input"/>
	<input type="button" id="search_button" value="search"/>
	
< /script >
  1. 对Dom元素事件的绑定——event属性

先看一个示例:

searchview=Backbone.view.extend({
	initialize:function(){
		this.render();
   },
   render:function(){
		var templete=_.templete($("#search_templete).html().{});
		//使用underscore来编译模版
		//加载模版到对应的e l	属性中
		this.el.html(templete);
  },
  //进行事件绑定
  events={
		'click input[type=button]':'doSearch'
		//定义类型为button的input标签的点击事件,触发函数doSearch
 },
 doSeach:function(event){
	alert("search for"+$("#search_input").val());
}
});
var searchview=new SearchView({el:$("#search_container")});

3.Veiw 中的模版——templete

我们可以在模版中定义变量,通过字典的方式传递进去;

例如:

render:function(){
	var  templete=_.templete($("#search_templete").html(),{search_label:"hello"});
	this.el.html(templete);
}

 //需要注意的是:对于实际应用,页面数据的变化要同步到服务器;  最好的方法是:回传变化的数据,然后修改页面上对应的数据,而非刷新页面
例如:


render:function(search_label){
	var templete=_.templete($("#search_templete").html(),{search_label:search_label});
	this.el.html(templete);
},
events:{
	'click input[type=button]':'doChange'
},
doChange:function(event){
	//通过model发送数据到服务器
	this.render('Hello'+$("#search_input").val());
}
});
var searchView=new searchView({el:$("#search_container")});

以上就是关于View操作的相关讲解了,重新回顾下View,它在与模型数据的关系时息息相关的:

当模型数据发生改变,视图立刻自动更新,这一切都不需要重绘页面。创建自定义的视图类。通常我们需要重载render 函数,声明事件,通过tagName,className或id为视图指定根元素

好啦!本篇就到这里!(❤️ 现在关注【前端修罗场】,后台回复【666】,即可获取一份【免费的优质学习资料】,一起学习,一起进步,不走弯路,不吃亏~)

每篇一语:

生活给了我们很多选择,选择在这个时代似乎被强调的很重要。上午看了李彦宏在《开讲啦》的vedio,才发现他对信息资源的态度我想是搜索引擎一致的开端吧。所以,在这个信息资源能随时从网络获取的时代,我们愈加趋近平等,我们不应该抱怨没有天赋,因为我们都不笨。
距离新年还有2个月,奋力奔跑吧!(下周末有一部《小王子》要上映,我得去瞅瞅~)

这里写图片描述

Python气象数据处理实战:用PyCINRAD轻松绘制雷达PPI图像(附避坑指南) 本文详细介绍了如何使用Python库PyCINRAD处理中国CINRAD系列天气雷达的基数据,并绘制专业的PPI图像。内容涵盖从环境配置、数据读取、核心绘图到高级定制与批量处理的完整流程,并针对安装依赖、中文乱码、数据范围等常见问题提供了实用的避坑指南,帮助气象工作者高效完成雷达数据可视化。 阅读详情

相关推荐

Codesys电子凸轮从入门到应用:手把手教你用MC_CamIn/MC_CamOut实现主从轴同步

本文详细介绍了如何在Codesys平台上使用MC_CamIn和MC_CamOut功能块实现电子凸轮的主从轴同步控制。从环境配置、轴使能到凸轮表创建与动态切换,提供了完整的程序编写指南和调试技巧,帮助工程师快速掌握工业自动化中的高精度运动控制技术。

weixin_26878995的博客 276

Backbone之view事件

<script> var ToDoItem = Backbone.Model.extend({ }) var toDoItem = new ToDoItem({ 'title': 'task1', 'description': 'description1' }); var ToDoItemView=Backbone.View.extend({ })...

qq_39368007的博客 227

金蝶个版本下载地址,记得保存收藏。

专业版 V10.0 http://downloads.cmcloud.cn/kis/kis_pro/10.0/kiszybV10sp1.rar V11.0 http://downloads.cmcloud.cn/kis/kis_pro/11.0/KISV11Setup.rar V12.0 http://dow...

饺子的博客 2492

backbone的View之extend

      extend        Backbone.View.extend   可以用来创建一个自定义的View 可以指定View的事件、tagName、className或者id       

Focus-Fe 813

淘特App x-sign参数逆向实战:从抓包到算法定位

本文详细解析了淘特App的x-sign参数逆向过程,从抓包分析到算法定位,涵盖了使用jadx-gui进行静态分析、Frida动态Hook验证以及Native层算法还原等关键技术。文章重点介绍了x-sign参数的生成机制及其在阿里系应用中的安全防护策略,为逆向工程师提供了实用的调试技巧和对抗策略。

5b6n7m8的博客 226

开关电源环路稳定性分析(01)-Buck变换器

这篇文章主要是根据Buck变换器的拓扑结构,利用欧姆定律,基尔霍夫定律,积分微分,这些我们所熟悉的理论推导出了开关电源输入和输出关系的表达式,我相信看完这篇文章,应该是可以自己推导一次。在后面的文章中,我们同样会按照这样的风格,尽量使用大家都已经掌握的知识,来一步一步的拆解晦涩难懂的环路稳定性的问题,在前面先把积木搭起来,后面综合分析的时候就不会显得那么困难!

D_Katter的博客 3828

backbone.js源码解析:extend、Backbone.View

backbone版本:0.9.21.解析Backbone.Model(Collection | Router | View).extend(1).找到extend的定义 //定义extend函数varextend=function(protoProps,classProps){/*通常我们以Backbone.XXX.extend的方式建立一个Model、Vi...

weixin_30408165的博客 174

【实战技巧】matplotlib中文标签显示问题的3种高效解决方案

本文详细介绍了解决matplotlib中文标签显示问题的3种高效方法,包括修改字体设置、临时指定字体和修改后端配置。针对不同操作系统和环境提供了实用技巧,帮助开发者快速解决中文显示为方框的常见问题,提升数据可视化效果。

weixin_30855099的博客 169

Backbone.js视图

除了DOM事件,视图还可以触发和监听自定义事件,实现视图间的解耦通信。});},});绑定事件处理器。绑定一次性事件处理器,触发后自动解绑。解绑事件处理器。触发事件,可传递额外参数给事件处理器。让当前对象监听另一个对象的事件。停止监听指定对象的事件。

天涯学馆 1273

使用 Azure DevSecOps 和 AIOps 构建可扩展且安全的多区域金融科技 SaaS 平台

这家虚构的金融科技 SaaS 组织在 Microsoft Azure 上构建了一个现代化的多区域架构,以实现高可用性、主动安全性和简化的 DevSecOps 工作流。如果您是 DevOps 从业者、SRE 专业人士或致力于创建弹性、可扩展且安全的金融科技解决方案的技术领导者,您将从中获得可直接应用于您自身项目的见解和经验教训。与大多数快速扩张的金融科技公司一样,他们需要确保不间断的正常运行时间、坚不可摧的安全性以及快速的功能交付,以满足全球用户群的需求。即使是短暂的中断也会损害用户的信心和忠诚度。

介绍AWS Azure GCP devops Terraform 等技术 1298

微信小程序 - {errCode: 10008, errno: 1500104, errMsg: “writeBLECharacteristicValue:fail write characteris

微信小程序errCode: 10008, errno: 1500104, errMsg: "writeBLECharacteristicValue:fail write characteristics error. 10008, errMsg=The value's length is invalid.",uni-app微信小程序报错,uniApp小程序调用蓝牙api报错,向低功耗蓝牙设备的某个特征写入数据时错误,UniApp微信小程序蓝牙API调用报错10008解决方案,蓝牙设备进行通信时,向设备写入数据

🏆 前端领域优质创作者 4428

详解js中extend函数

为了简化类的声明,可以把派生子类的整个过程包装在一个extend的函数,和其他语言中的extend关键字类似,基于一个给定的类结构创建一个新的类 function extend(subClass, superClass){ var F = function(){ }; F.prototype = superClass.prototype; subClas

sysuzhyupeng的博客 4万+

量化交易 米筐 案例:市值因子选股策略

案例:市值因子的选股策略 1.结果 获得超额收益 年化 49% 2. 从股票中选择市值小的股票 选定财务数据筛选 进行每日调仓(多因子选股调仓 周期频率会小一些) 3. 代码 估值有关指标 # 在沪深300股票中,选出市值比较小的10只股票 # 在这个方法中编写任何的初始化逻辑。context对象将会在你的算法策略的任何方法之间做传递。 def init(context): # 沪深300组合 stocks = index_components('000300.XSHG') # 沪深3

廷益_飞鸟的博客 2311

Backbonejs教程第二版目录

把backbonejs版本更新到1.1.0,并对部分内容进行了扩展,添加了新的实战

the_fire的技术博客 1万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

前端javascript框架之BackboneJS学习笔记

<!DOCTYPE html><html><head><meta charset="utf-8"><script src="http://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script><script src="http://documentcloud.gith...

weixin_30289831的博客 133

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

2014/08/11 – Backbonejs

2014/08/11 – Backbonejs [来自: Backbone.js 开发秘笈 第6章] Template 用法: 通过 Underscore.js 提供的 _.template() 方法,我们可使用 <% ... %> 包含js代码;使...

weixin_30307267的博客 128

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Backbone.js简单入门范例

原文地址:http://dmyz.org/archives/598 Backbone.js已经很古老了,在Angular.js大行其道的今天,我们公司居然还在用Backbone。。。【哭笑不得脸】 这篇文章写的非常浅显易懂,一步一步教你如何使用Backbone.js,特此转过来收藏 11年刚开始用前端MVC框架时写过一篇文章,当时Knockout和Backbone都在用,但之后的

TheBadWaka的博客 4747

软件工程3——第三章 代码阅读

Popush代码阅读报告——View部分 聂中天2014/11/06 在真正集体开发之前,先要弄清楚如何编写。Popush集成了许多框架和设计模式,需要参照其官方文档和Popush的具体实现对比分析,才能合理高效地扩展Popush的功能。          这一篇博文就Popush的主要前端实现机制作一个整理总结,并对部分细节测试分析。针对的文件为Popush目录下Static文件夹里的文件

u011464195的专栏 839

如何用javascript实现双向数据绑定 / Backbone.js简单入门范例

首先你要弄明白什么是双向数据绑定,双向数据绑定就是视图层发生变化,能实时反应到数据层,数据层发生变化也能实时响应到视图层。现在的各种javascript的UI框架,很多都是实现了数据双向绑定的,backbone,angular,vue,react等等。那么实现双向数据绑定有哪些方法呢,目前我知道的有发布订阅者模式,数据劫持,数据脏检查,下面我就说最普遍的发布订阅者模式吧。 我们知道javascr

u011277123的博客 1590

Backbone.js 简易入门教程

因为最近的工作中使用到了backbone.js框架,所以在网上找了些资料,但是关于这个框架的中文资料实在是太少了,没有办法,只好自己翻译了壹篇简单的入门教材。如果翻译得不好,请大家口下留情。另外,大家也可以签出 Agility.js 的代码,它也是壹个用于替代Backbone.js的壹个简单框架。这是壹个简单的 Backbone.js 教程,由不言自明的"Hello World"到日益复杂的例子组

huang100qi的专栏 8777

backbone.js 教程(1) View & Model & Collection

Backbone.js Overview 它由Jeremy Ashkenas开发,最初发行于2010-10-13 它是一个轻量的JavaScript类库,只依赖于underscore.js,非强制依赖于jquery,大小只有7.6Kb,作为一个框架级的js文件,它已经非常小了 它提供了Model-View-Presenter(MVP)的框架模式,可以帮助前端开发搭建一个层次清晰的Web应用框架 ...

weixin_30892763的博客 437

backbone.js入门

注:教程请参见这里(本文有很多内容都是从这里翻译的),官方网站在这里;综合例子参见这里。 Backbone.js是一个前端MVC框架,model能够绑定键值对和自定义事件,集合具备可枚举方法的富API,视图具备事件处理能力,并且可以通过RESTful的JSON接口和你已有的API通信。 View Backbone里的视图就是用来反映数据模型的,可以监听事件并响应,通过利用

Evan's learning log 851

Backbone.js 模式和最佳实践(二)

Backbone 路由器的功能非常简单且易于学习。对于简单的应用程序,你将不会在维护它时遇到任何问题。一旦你的应用程序增长并且路由器变得庞大,问题就会逐渐出现。在本章中,我们讨论了路由器管理的最佳实践,那些你应该始终遵守的。我们还学习了子路由,它通过将主路由器拆分为多个特定模块的路由器并分配任务来提供帮助。在下一章中,我们将讨论 Backbone 事件、自定义事件、存储和同步。

龙哥盟 972

Backbone入门

(一)Backbone简介 Backbone是一个轻量级的JavaScript MVC框架,压缩后只有23kb,不过它依赖于Underscore.js和jQuery这两个JS库。Backbone是由Jeremy Ashkenas创建的,Underscore.js也是他创建的,他还创建了CoffeeScript这门优雅的JS转译语言。 模型(Model)是Backbone中的一个关键组件,Mod...

weixin_30823833的博客 174

Backbone.js+Require.js+Bootstrap构建web平台

技术主要介绍: Backbone.js是JavaScript的一种MVC框架,但是它View层和Controller层没能分离清楚,即View层包含了大量控制层的代码;当然,Model层也接管着大量与数据相关的控制层代码。其官方网站为http://backbonejs.org/。 Require.js是用于JavaScript项目管理模块,它的作用类似于Java项目中包的概念,在前台Jav...

weixin_30795127的博客 194

【再探backbone 02】集合-Collection

前言 昨天我们一起学习了backbone的model,我个人对backbone的熟悉程度提高了,但是也发现一个严重的问题!!! 我平时压根没有用到model这块的东西,事实上我只用到了view,所以昨天学习的效果其实不佳,比起上次对underscore的熟悉,对zepto的熟悉,甚至对fastclick的熟悉 学习效率打了折扣,而且一些地方不明不白...

weixin_34242331的博客 130
上一篇: BackboneJs入门学习[10]—View初探
下一篇: 关于web性能的思考与分享[01]——http性能
蟹蟹蟹风流
蟹蟹蟹风流 优质创作者: 编程框架技术领域 优质创作者: 编程框架技术领域 领域专家: 前端开发技术领域 领域专家: 前端开发技术领域
博客等级 码龄11年 3万+粉丝 396原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蟹蟹蟹风流

期望和你分享一杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值