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

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

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为视图指定根元素

好啦!本篇就到这里!

每篇一语:

生活给了我们很多选择,选择在这个时代似乎被强调的很重要。上午看了李彦宏在《开讲啦》的vedio,才发现他对信息资源的态度我想是搜索引擎一致的开端吧。所以,在这个信息资源能随时从网络获取的时代,我们愈加趋近平等,我们不应该抱怨没有天赋,因为我们都不笨。

距离新年还有2个月,奋力奔跑吧!(下周末有一部《小王子》要上映,我得去瞅瞅~)



相关文章
|
4月前
|
前端开发 UED 开发者
【前端秘籍】掌握 display: none 与 visibility: hidden 的奥秘,让你的网页设计更上一层楼!
【8月更文挑战第23天】在Web前端开发中,常需控制元素的可见性。本文详细对比了两种主流CSS隐藏方法:`display: none`和`visibility: hidden`。`display: none`彻底移除元素在页面布局中的位置,适用于无需保留空间的隐藏场景;而`visibility: hidden`仅使元素视觉上消失,仍保留其布局位置,适用于需要动画效果或保留布局结构的情况。通过具体示例展示了两种方法的实际应用,帮助开发者根据项目需求选择最合适的方式,提升用户体验。
89 0
|
6月前
|
移动开发 JSON JavaScript
一篇文章讲明白Egret白鹭H5小游戏开发入门(一)
一篇文章讲明白Egret白鹭H5小游戏开发入门(一)
127 1
|
5月前
|
JavaScript
小而美的IKUN-UI组件库源码学习(前言)
小而美的IKUN-UI组件库源码学习(前言)
129 0
小而美的IKUN-UI组件库源码学习(前言)
|
6月前
|
JavaScript 前端开发 API
技术笔记:Kendo框架
技术笔记:Kendo框架
32 0
|
移动开发 数据可视化 JavaScript
谈一谈|小白如何使用egret
谈一谈|小白如何使用egret
252 0
|
前端开发
前端知识学习案例-React简介
前端知识学习案例-React简介
61 0
前端知识学习案例-React简介
|
存储 设计模式 JavaScript
前端知识库Reactjs基础系列二(进阶)
上一节复习reactjs的基础知识,本节主要了解reactjs中一些高阶用法。
|
JSON JavaScript 数据格式
BackboneJs入门学习[10]—View初探
BackboneJs入门学习[10]—View初探
229 0
BackboneJs入门学习[10]—View初探
|
JSON 数据格式
BackboneJs入门学习[04]—Model实践(2)
BackboneJs入门学习[04]—Model实践(2)
120 0
BackboneJs入门学习[04]—Model实践(2)
|
JavaScript
BackboneJs入门学习[03]—Model实践(1)
BackboneJs入门学习[03]—Model实践(1)
116 0
BackboneJs入门学习[03]—Model实践(1)