«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > ## Модели Knockout View: объектные литералы или функции — какая из них подойдет вам?

## Модели Knockout View: объектные литералы или функции — какая из них подойдет вам?

Опубликовано 19 ноября 2024 г.
Просматривать:121

##  Knockout View Models: Object Literals or Functions – Which One is Right for You?

KO Модели представления: объектные литералы и функции

В Knockout JS модели представления можно объявлять с использованием либо объектных литералов, либо функций. Хотя основной целью обоих является определение наблюдаемых свойств и вычисляемых функций, ключевые различия между ними влияют на инкапсуляцию, гибкость и организацию кода.

Объектные литералы:

var viewModel = {
    firstname: ko.observable("Bob")
};

Объектные литералы просты и лаконичны для простых моделей представления без сложной логики или вычисляемых функций. Однако они:

  • Не предоставляют доступ к предопределенному этому контексту в вычисляемых функциях.
  • Может быть сложно управлять, если модель представления содержит много наблюдаемых и вычисляемых функций.

Функции:

var viewModel = function() {
    this.firstname = ko.observable("Bob");
};

Функции имеют ряд преимуществ:

  • Инкапсуляция: Использование функции инкапсулирует создание модели представления и ее свойств в рамках одного вызова.
  • этот контекст в вычисляемых функциях: Этот контекст автоматически привязывается к экземпляру модели представления, что обеспечивает удобный доступ к ее свойствам и методам в вычисляемых функциях.
  • Гибкость: Функции могут принимать аргументы и использоваться для инициализации модели представления на основе внешних данных или других объектов.

Рекомендации:

В в большинстве случаев рекомендуется использовать функцию для определения моделей представления. Он обеспечивает большую инкапсуляцию и гибкость, упрощая управление сложными моделями представлений и обеспечивая правильный доступ к ним.

Частные свойства и методы:

Модели представления на основе функций разрешить создание частных свойств и методов в этом контексте с помощью собственного шаблона:

var ViewModel = function() {
    var self = this;
    self.privateProperty = ko.observable();
    self.privateMethod = function() {};
};

Функция привязки:

В качестве альтернативы современные браузеры и Knockout JS предоставляют функцию привязки для явной привязки функции к конкретному контексту this:

var ViewModel = function() {
    this.items = ko.observableArray();
    this.removeItem = function(item) { this.items.remove(item); }.bind(this);
};

Использование функции привязки гарантирует, что это относится к экземпляру модели представления даже при вызове функции из вложенной области.

Вывод:

Хотя для определения моделей представления исключения можно использовать как объектные литералы, так и функции, функции обычно предпочтительнее из-за их инкапсуляции, гибкости и эффективной обработки этого в вычисляемых функциях.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3