JavaScript的Backbone.js框架環(huán)境搭建及Hellow world示例

字號(hào):


    這篇文章主要介紹了JavaScript的Backbone.js框架環(huán)境搭建及Hellow world示例,Backbone是一個(gè)類似MVC結(jié)構(gòu)的前端MVVM框架,非常輕量,需要的朋友可以參考下
    環(huán)境準(zhǔn)備
    在正式學(xué)習(xí)Backbone之前,你需要準(zhǔn)備一些東西:
    首先,你需要獲取Backbone框架源文件:http://documentcloud.github.com/backbone/
    Backbone依賴于Underscore框架的基礎(chǔ)方法,因此,你同時(shí)需要下載Underscore框架的源文件:http://documentcloud.github.com/underscore/
    在Backbone中,對(duì)DOM和事件的操作依賴于第三方庫(如jQuery或Zepto),你只需要選擇其中一個(gè)下載:
    jQuery:http://jquery.com/
    Zepto:http://zeptojs.com/
    看起來好像挺麻煩的樣子,但Backbone的目的是在于使用簡(jiǎn)單的框架來構(gòu)建復(fù)雜的應(yīng)用,因此麻煩并不表示它很復(fù)雜。
    你可以新建一個(gè)HTML頁面,并將這些框架引入進(jìn)來,就像這樣:
    <script type="text/javascript" src="jquery/jquery-1.8.2.min.js"></script> 
    <script type="text/javascript" src="underscore/underscore-min.js"></script> 
    <script type="text/javascript" src="backbone/backbone-min.js"></script> 
    至此,你已經(jīng)準(zhǔn)備好了運(yùn)行Backbone必須的環(huán)境。
    Hellow World
    先來說一下這個(gè)helloworld的功能: 在頁面上有一個(gè)報(bào)道的按鈕,點(diǎn)擊彈出輸入框,輸入內(nèi)容,確認(rèn),最后內(nèi)容會(huì)加到頁面上。頁面圖如下:
    名單
    下面來看代碼:
    <!DOCTYPE html>
    <html>
    <head>
        <title>the5fire.com-backbone.js-Hello World</title>
    </head>
    <body>
    <button id="check">報(bào)到</button>
    <ul id="world-list">
    </ul>
    <a >更多教程</a>
    </body>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
    <script src="http://documentcloud.github.com/underscore/underscore-min.js"></script>
    <script src="http://documentcloud.github.com/backbone/backbone-min.js"></script>
    <script>
    (function ($) {
        World = Backbone.Model.extend({
            //創(chuàng)建一個(gè)World的對(duì)象,擁有name屬性
            name: null
        });
        Worlds = Backbone.Collection.extend({
            //World對(duì)象的集合
            initialize: function (models, options) {
                this.bind("add", options.view.addOneWorld);
            }
        });
        AppView = Backbone.View.extend({
            el: $("body"),
            initialize: function () {
                //構(gòu)造函數(shù),實(shí)例化一個(gè)World集合類,并且以字典方式傳入AppView的對(duì)象
                this.worlds = new Worlds(null, { view : this })
            },
            events: {
                "click #check": "checkIn",  //事件綁定,綁定Dom中id為check的元素
            },
            checkIn: function () {
                var world_name = prompt("請(qǐng)問,您是哪星人?");
                if(world_name == "") world_name = '未知';
                var world = new World({ name: world_name });
                this.worlds.add(world);
            },
            addOneWorld: function(model) {
                $("#world-list").append("<li>這里是來自 <b>" + model.get('name') + "</b> 星球的問候:hello world!</li>");
            }
        });
        //實(shí)例化AppView
        var appview = new AppView;
    })(jQuery);
    </script>
    </html>
    我認(rèn)為代碼是直觀的,這里面涉及到backbone的三個(gè)部分,view、model、collection,以后都會(huì)提到,這里只要了解,model代表一個(gè)數(shù)據(jù)模型,collection是模型的一個(gè)集合,而view是用來處理頁面以及簡(jiǎn)單的頁面邏輯的。