繁体   English   中英

在主干视图中使用mixin-哪种方法更好?

[英]Using mixins in backbone views -which of these is the better approach?

这两个选项都会导致视图的正确行为。 这个问题更多地是关于哪种方法更有效,或者出于其他原因而更可取。

如果还有其他方法可以做到这一点,也请让我知道它们!

选项1

在主干视图的initialize函数内扩展。

define([

    'mixins/fooMixin',

    'mixins/barMixin'

],

function(FooMixin, BarMixin) {

    var FooBarView = BackboneLayout.extend({

        initialize: function() {

            _.extend(this, FooMixin);

            _.extend(this, BarMixin);

            /* do other things */

        },

        mySpecialMethod: function() {

            this.foo();

            this.bar();

        }

    });

    return FooBarView;

});

选项#2

在创建主干视图之前,请在普通的javascript对象上进行扩展。

define([

    'mixins/fooMixin',

    'mixins/barMixin'

],

function(FooMixin, BarMixin) {

    var FooBarViewDefn = {};

    _.extend(FooBarViewDefn, FooMixin, BarMixin, {

        initialize: function() {

            /* do other things */

        },

        mySpecialMethod: function() {

            this.foo();

            this.bar();

        }

    });

    return BackboneLayout.extend(FooBarViewDefn);

});

毫无疑问,nr 2,因为它只会运行一次,并且每次实例化视图时都会执行#1。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM