Backbone React Requirejs 應用實戰(二)——使用Backbone Model

Phodal發表於2015-05-16

在一篇《Backbone React Requirejs 應用實戰(一)——RequireJS管理React依賴》,我們介紹瞭如何使用Requirejs管理我們的JS,這一篇讓我們來看看如何使用model。

react.backbone

react.backbone簡介

專案首頁: https://github.com/clayallsopp/react.backbone

Plugin for React to make Backbone integration easier. Initialize your component with a Backbone.Model or Backbone.Collection; when the model or collection changes, #render will be called.

安裝

bower install react.backbone --save-dev

README上有這樣一個例子:

var UserViewComponent = React.createBackboneClass({
    changeOptions: "change:name", // DEFAULT is "change",
    render: function() {
        return (
          <div>
              <h1>{this.getModel().get("name")}</h1>
          </div>
        );
    }
});

var user = new Backbone.Model();
var UserView = React.createFactory(UserViewComponent);
var userView = UserView({model: user});

可惜太長了。讓我們來作一個簡單的例子:

React使用Backbone Model

記得在上一篇中,我們提到了router,在Router裡的project是這樣子的:

    project: function(){
        var user = new UserModel({name: 'phodal'});
        var UserView = React.createFactory(ProjectComponent);
        var userView = new UserView({model: user});
        React.render(userView, document.getElementById('main_content'));
    },

而UserModel則是一個簡單的model

define(['backbone'], function(Backbone) {
    var UserModel = Backbone.Model.extend({
        initialize : function(name) {
            this.name = name;
        },
        defaults:{
            name:null
        }
    });

    return UserModel;
});

我們用到了一個叫ProjectComponent的component,最後將它渲染到main_content這個id上。

我們的projectcomponent是這樣子的:

define([
    'react',
    'react.backbone'
],function(React){
    return React.createBackboneClass({
        render: function () {
            return (
                <div>
                    <h1>{this.getModel().get('name')}</h1>
                    Project
                </div>);
        }
    });
});

從我們的model裡面獲取`name

這樣,我們就可以簡單地在我們的應用中使用Backbone Model。

其他

Github: https://github.com/phodal/backbone-react

相關文章