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

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

Upload: yandex

Post on 15-Jun-2015

710 views

Category:

Technology


0 download

DESCRIPTION

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

TRANSCRIPT

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