Сергей Бережной "Клиентский JavaScript в БЭМ-терминах: от...

Post on 15-Jun-2015

707 views 0 download

description

Писать сложный клиентский JavaScript непросто. Каждый, кто пробовал, знает это не понаслышке. Как писать независимые блоки? Как писать блоки, состоящие из других блоков? Как сделать библиотеку блоков? В докладе мы расскажем про то, как упростить себе жизнь и научиться писать клиентский JavaScript в БЭМ-терминах.

Transcript of Сергей Бережной "Клиентский JavaScript в БЭМ-терминах: от...

руководитель отделаразработки поисковых интерфейсов

Клиентский JavaScriptв БЭМ-терминахСергей Бережной

Инициализация

• HTML «оживляется» с помощью JS– прогрессивный рендеринг– unobtrusive– агенты без JS

• DOM строится из JS– простая связь HTML и JS

35

BEM.DOM.decl('my-block', { /* методы и поля экземпляра */ }, { live: function() { this.liveInitOnEvent(...) .liveInitOnBlockEvent(...) .liveInitOnBlockInsideInit(...) .liveInitOnBlockInsideEvent(...) .liveInitOnBlockInit(...) } })

Ленивая инициализация

67

Что было?

• способ декларации блоков для клиентского JS• императивная и декларативная инициализация• параметры из HTML в JS• динамическая инициализация и destruct

111

Что было?

• способ декларации блоков для клиентского JS• императивная и декларативная инициализация• параметры из HTML в JS• динамическая инициализация и destruct• ленивая инициализация

111

Что было?

• способ декларации блоков для клиентского JS• императивная и декларативная инициализация• параметры из HTML в JS• динамическая инициализация и destruct• ленивая инициализация• состояния инициализации

111

Что было?

• способ декларации блоков для клиентского JS• императивная и декларативная инициализация• параметры из HTML в JS• динамическая инициализация и destruct• ленивая инициализация• состояния инициализации• БЭМ

111

Что было?

• способ декларации блоков для клиентского JS• императивная и декларативная инициализация• параметры из HTML в JS• динамическая инициализация и destruct• ленивая инициализация• состояния инициализации• БЭМ• файлы и сборка

111

Что было?

• способ декларации блоков для клиентского JS• императивная и декларативная инициализация• параметры из HTML в JS• динамическая инициализация и destruct• ленивая инициализация• состояния инициализации• БЭМ• файлы и сборка• библиотеки блоков

111

Что дальше?

• параллели с собственным опытом– всё примерно так и делаю– есть похожие проблемы, не знал как решать– нет таких проблем

113

Что дальше?

• параллели с собственным опытом– всё примерно так и делаю– есть похожие проблемы, не знал как решать– нет таких проблем

• использовать

113

Что дальше?

• параллели с собственным опытом– всё примерно так и делаю– есть похожие проблемы, не знал как решать– нет таких проблем

• использовать– i-bem.js

113

Что дальше?

• параллели с собственным опытом– всё примерно так и делаю– есть похожие проблемы, не знал как решать– нет таких проблем

• использовать– i-bem.js– реализовать самостоятельно

113

руководитель отделаразработкипоисковых интерфейсов

veged@yandex-team.ru

Спасибо

Сергей Бережной

@veged

github.com/veged