资讯专栏INFORMATION COLUMN

Backbone源码研究 - Backbone.View

JellyBool / 2514人阅读

摘要:整个的代码非常简洁,构造逻辑也一目了然。生成唯一合并参数列表列表项目的初始化用户定义的初始化事件处理可以看到,最重要的代码,在于的初始化。这段代码可以看出,如果实例化的时候有传入一个节点,则绑定这个节点,否则生成一个这样的节点。

整个View的代码非常简洁,View构造逻辑也一目了然。

javascriptvar View = Backbone.View = function(options) {
    this.cid = _.uniqueId("view");
    options || (options = {});
    _.extend(this, _.pick(options, viewOptions));
    this._ensureElement();
    this.initialize.apply(this, arguments);
    this.delegateEvents();
};

生成唯一cid

合并参数列表

列表项目

View的初始化

用户定义的初始化

事件处理

可以看到,最重要的代码,在于View的初始化。

javascript_ensureElement: function() {
    if (!this.el) {
        var attrs = _.extend({}, _.result(this, "attributes"));
        if (this.id) attrs.id = _.result(this, "id");
        if (this.className) attrs["class"] = _.result(this, "className");
        var $el = Backbone.$("<" + _.result(this, "tagName") + ">").attr(attrs);
        this.setElement($el, false);
    } else {
        this.setElement(_.result(this, "el"), false);
    }
}

这段代码可以看出,如果实例化的时候有传入一个DOM节点,则绑定这个DOM节点,否则生成一个这样的DOM节点。

javascriptvar view = new View({
    el: $("body"),
    model: new Backbone.Model()
})

结语:嗯,Backbone.View真的好简单,没做什么事情。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/85639.html

相关文章

  • Backbone 源码解读(一)

    1. 开场 1.1 MVC? MVC是一种GUI软件的一种架构模式。它的目的是将软件的数据层(Model)和视图(view)分开。Model连接数据库,实现数据的交互。用户不能直接和数据打交道,而是需要通过操作视图,然后通过controller对事件作出响应,最后才得以改变数据。最后数据改变,通过观察者模式更新view。(所以在这里需要用到设计模式中的观察者模式) 1.2 Smalltalk-80...

    Kosmos 评论0 收藏0
  • Backbone源码解读(二)

    摘要:以为例构造函数的内容构造函数的内部一般会做以下几个操作各种给内部对象设置属性。为什么呢源码做出了解释。在里面会调用用户传入的回调函数并触发事件表示已经同步了。整个的源码事实上就是这两组东西。 1. 开场 强烈建议一边看着源码一边读本文章,本文不贴大段代码。源码地址。在写backbone应用的时候,说实话,大部分的时间都是在写这三个模块的内容。关于这三个模块的分析网上随随便便就能找到一堆...

    Sleepy 评论0 收藏0
  • Backbone.js学习笔记(二)细说MVC

    摘要:因为是一条数据记录,也就是说,相当于是一个数据集。通常我们需要重载函数,声明,以及通过或为视图指定根元素。通过绑定视图的函数到模型的事件模型数据会即时的显示在中。实例属性参数以及类属性参数会被直接注册到集合的构造函数。 对于初学backbone.js的同学可以先参考我这篇文章:Backbone.js学习笔记(一) Backbone源码结构 showImg(https://segme...

    taoszu 评论0 收藏0
  • backbone源码解读

    摘要:个人认为,读懂老牌框架的源代码比会用流行框架的要有用的多。另外,源代码中所有的以开头的方法,可以认为是私有方法,是没有必要直接使用的,也不建议用户覆盖。 写在前面 backbone是我两年多前入门前端的时候接触到的第一个框架,当初被backbone的强大功能所吸引(当然的确比裸写js要好得多),虽然现在backbone并不算最主流的前端框架了,但是,它里面大量设计模式的灵活运用,以及令...

    Kross 评论0 收藏0
  • backbone源码解读

    摘要:个人认为,读懂老牌框架的源代码比会用流行框架的要有用的多。另外,源代码中所有的以开头的方法,可以认为是私有方法,是没有必要直接使用的,也不建议用户覆盖。 写在前面 backbone是我两年多前入门前端的时候接触到的第一个框架,当初被backbone的强大功能所吸引(当然的确比裸写js要好得多),虽然现在backbone并不算最主流的前端框架了,但是,它里面大量设计模式的灵活运用,以及令...

    wangxinarhat 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<