Реализация привязок типа SproutCore в веб-приложении JavaScript

Я прошел обучение по SproutCore и у меня есть представление о том, что может предложить фреймворк. Это кажется удивительным, хотя я не уверен, что чувствую к фреймворку, который генерирует HTML и CSS за кулисами. Особенность SproutCore, которую я нахожу наиболее привлекательной, - это ее привязки: уменьшение количества связующего кода, необходимого для синхронизации всего, может быть только хорошей вещью.

Мне интересно узнать, как реализованы привязки SproutCore. Я хотел бы иметь возможность использовать преимущества привязок без необходимости использования такой инфраструктуры, как SproutCore.

Как можно было бы написать код JavaScript, необходимый для привязки данных и их представлений, чтобы представления мгновенно отражали изменения данных без какого-либо связующего кода?

1 ответ

Решение

При использовании SproutCore использование методов get и set, предоставляемых в миксине SC.Observable, позволяет наблюдать значение ключа. Когда вы создаете привязку, она в основном устанавливает наблюдателя, который срабатывает, когда вызывается метод 'set' для значения, которое он наблюдает, а затем распространяет изменение. Когда привязка привязана к представлению на вашей странице, привязка вызывает необходимый код представления для внесения изменений в DOM. Вы можете взглянуть на API документы и исходные коды для SC.Observable и SC.Binding на http://docs.sproutcore.com/.

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

Другие вопросы по тегам