IT Share you

Backbone.js 뷰에서 $ el과 el의 차이점은 무엇입니까?

shareyou 2020. 12. 8. 20:25
반응형

Backbone.js 뷰에서 $ el과 el의 차이점은 무엇입니까?


당신은 차이 알려주세요 수 $elelBackbone.js보기의를?


당신이 이것을한다고 말할 수 있습니다

var myel = this.el; // here what you have is the html element, 
                    //you will be able to access(read/modify) the html 
                    //properties of this element,

이것으로

var my$el = this.$el; // you will have the element but 
                      //with all of the functions that jQuery provides like,
                      //hide,show  etc, its the equivalent of $('#myel').show();
                      //$('#myel').hide(); so this.$el keeps a reference to your 
                      //element so you don't need to traverse the DOM to find the
                      // element every time you use it. with the performance benefits 
                      //that this implies.

하나는 html 요소이고 다른 하나는 요소의 jQuery 객체입니다.


mu가 너무 짧 습니다.

this.$el = $(this.el);

그리고 그 이유를 이해하기 쉽습니다. 뷰의 _setElement기능을 살펴보십시오 .

_setElement: function(el) {
  this.$el = el instanceof Backbone.$ ? el : Backbone.$(el);
  this.el = this.$el[0];
},

이렇게하면 el속성이 항상 DOM 요소이고 $el속성이 항상이를 래핑하는 jQuery 객체가됩니다. 따라서 el옵션 또는 속성 으로 jQuery 객체를 사용하더라도 다음은 유효 합니다.

// Passing a jQuery object as the `el` option.
var myView = new Backbone.View({ el: $('.selector') });
// Using a jQuery object as the `el` View class property
var MyView = Backbone.View.extend({
    el:  $('.selector')
});

캐시 된 jQuery 객체 란 무엇입니까?

재사용 목적으로 변수에 할당 된 jQuery 객체입니다. $(selector)매번 DOM을 통해 요소를 찾는 비용이 많이 드는 작업을 피할 수 있습니다.

예를 들면 다음과 같습니다.

render: function() {
    this.$el.html(this.template(/* ...snip... */));
    // this is caching a jQuery object
    this.$myCachedObject = this.$('.selector');
},

onExampleEvent: function(e) {
    // Then it avoids $('.selector') here and on any sub-sequent "example" events.
    this.$myCachedObject.toggleClass('example');
}

더 많은 것을 알기 위해 내가 쓴 광범위한 답변을 참조하십시오 .


간단히 말해서, el은 HTML DOM 요소에 대한 액세스를 제공합니다. 즉, 참조하고 액세스 할 수있는 반면 $ el은 el 주위의 jQuery 래퍼입니다.

$ el은 특정 DOM 요소에 대한 액세스를 제공 할뿐만 아니라 jQuery 선택기 역할을하며 특정 DOM 요소에서 show (), hide () 등과 같은 jQuery 라이브러리 함수를 사용할 수있는 권한이 있습니다.


It is so late to answer it but --> this.$el is a reference to the element in the context of jQuery, typically for use with things like .html() or .addClass(), etc. For example, if you had a div with id someDiv, and you set it to the el property of the Backbone view, the following statements are identical:

this.$el.html() $("#someDiv").html() $(this.el).html()

this.el is the native DOM element, untouched by jQuery.

참고URL : https://stackoverflow.com/questions/16646526/what-is-the-difference-between-el-and-el-in-backbone-js-views

반응형