Skip to content

Commit

Permalink
Updated migration
Browse files Browse the repository at this point in the history
  • Loading branch information
andrewblond committed Aug 19, 2015
1 parent 9d0adde commit 80caf8c
Showing 1 changed file with 29 additions and 30 deletions.
59 changes: 29 additions & 30 deletions MIGRATION-1.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,45 +8,18 @@
BH 4.0
------

В шаблонизаторе BH, начиная с версии `4.0`, произошло множество изменений, связанных с генерацией HTML-кода:
В шаблонизаторе BH, начиная с версии `4.0`, произошли следующие изменения:

* [Добавление класса i-bem](#i-bem)
* [Хранение JS-данных](#Атрибут-для-js-данных)
* [Поддержка пустых атрибутов](#Пустые-атрибуты)
* [Обход БЭМ-дерева](#Обход-бэм-дерева)
* [Поддержка BEM.I18N](#bemi18n)

### i-bem

CSS-класс `i-bem` теперь будет добавляться не только к блокам, но и к элементам.
CSS-класс `i-bem` теперь добавляется не только к блокам, но и к элементам.

Чтобы отключить такое поведение и добавлять класс только к блокам, следует использовать опцию [jsElem](api.ru.md#jselem) со значением `false`.

### Атрибут для JS-данных

JS-данные для блоков и элементов больше не предполагается хранить в `onclick` атрибуте.

```html
<div class="button i-bem" onclick="return { button: { key: 'val' } };"></div>
```

Теперь для этого нужно используется `data-bem` атрибут:

* данные в нем хранятся в формате JSON;
* атрибут обрамляется одинарными кавычками, а не двойными.

```html
<div class="button i-bem" data-bem='{ "button": { "key": "val" } }'></div>
```

Чтобы вернуть прежнее поведение, следует использовать опции [jsAttrName](api.ru.md#jsattrname) и [jsAttrScheme](api.ru.md#jsattrscheme):

```js
{
jsAttrName: 'onclick',
jsAttrScheme: 'js'
}
```
Чтобы отключить добавление класса к элементам, следует использовать опцию [bhOptions](api.ru.md#bhoptions) со значением `{ jsElem: false }`.

### Пустые атрибуты

Expand Down Expand Up @@ -164,6 +137,32 @@ module.exports = BH;

**Важно:** шаблоны и подключаемые библиотеки не должны содержать кода, специфичного для какой-то конкретной среды исполнения.

#### Настройка BH

Для настройки шаблонизатора BH вместо опций `jsAttrName`, `jsAttrScheme` и `clsNobaseMods` следует использовать опцию [bhOptions](api.ru.md#bhoptions).

**Было:**

```js
{
jsAttrName: 'data-bem',
jsAttrScheme: 'json',
clsNobaseMods: false
}
```

**Стало:**

```js
{
bhOptions: {
jsAttrName: 'data-bem',
jsAttrScheme: 'json',
clsNobaseMods: false
}
}
```

#### Изолированность шаблонов

Раньше все шаблоны, собранные с помощью технологий `bh-client`, `bh-client-module` или `bh-server-include`, выполнялись в одной области видимости.
Expand Down

0 comments on commit 80caf8c

Please sign in to comment.