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

158
руководитель отдела разработки поисковых интерфейсов Клиентский JavaScript в БЭМ-терминах Сергей Бережной

description

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

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

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

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

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

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

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

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

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

35

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

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

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

67

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

Что было?

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

111

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

Что было?

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

111

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

Что было?

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

111

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

Что было?

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

111

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

Что было?

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

111

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

Что было?

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

111

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

Что дальше?

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

113

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

Что дальше?

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

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

113

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

Что дальше?

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

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

113

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

Что дальше?

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

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

113

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

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

[email protected]

Спасибо

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

@veged

github.com/veged