Например я могу использовать как this.ctx.block, так и this.block для получения имя блока.
Еще не понятная история с data, например если передать в bemhtml свойство data:
{
block: 'some-block',
data: 'some-data'
}
, то оно будет находится как и в this.ctx.data так и в this.data
Но если передать свойство отличное от data:
{
block: 'some-block',
anotherkey: 'some-data'
}
, то оно будет находится только в свойстве this.ctx.anotherkey
подпишусь, хотя этот вопрос никогда не напрягал. практически всегда используем this.ctx.
Также использую только this.ctx, но все же интересно разобраться
UP!
Team, please help
this.ctx
это прямо ссылка на фрагмент входного bemjson отвечающего за текущую обрабатываемую сущностьесли нужно получить информацию о БЭМ-свойствах текущего контекста (block, elem, mods, elemMods), то всегда правильно использовать
this
, где эти значения правильно поддерживаются (например, если во входном bemjson есть{ elem: 'e1' }
, без указания блока, то полеthis.block
будет вычислено по контексту)история с
this.ctx.data === this.data
выглядит или как баг, или как частный случай (если какие-то шаблоны записывают вthis.data
ссылку наthis.ctx.data
), или как недосмотр — в общем случае, такого быть не должнодля доступа к кастомным полям (типа
this.ctx.data
иthis.ctx.anotherkey
) всегда нужно использоватьthis.ctx
@veged, спасибо за ответ)