Size: a a a

2020 July 25

yW

yarastqt World in БЭМ
Можно кстати тип для хока сделать и типы контекстно выводить, типо:
const withF: Wrapper<InjectedProps> = (Wrapped) => (props) => <Wrapped {…props} />
источник

yW

yarastqt World in БЭМ
А внутри уже через infer type достать тип из Wrapped’a
источник

Prikolist Начрэл... in БЭМ
yarastqt World
Можно кстати тип для хока сделать и типы контекстно выводить, типо:
const withF: Wrapper<InjectedProps> = (Wrapped) => (props) => <Wrapped {…props} />
Выглядит удобно, попробую. В bem core есть вот такая обёртка:

type Wrapper<T> = (WrappedComponent: React.ComponentType<{}>) => React.ComponentType<T>

Это о другом?
источник

yW

yarastqt World in БЭМ
М…, в целом да, но тут тип не достается из Wrapped'a
источник
2020 July 26

ПЗ

Павел Зубков... in БЭМ
Когда пилили первые версии bem react, не было попыток манипуляции реактовскими нодами?
что-нибудь вроде такого:
  function User(props) => {
   return (
     <div className="user">
       <image className="user__avatar src={props.avatar} />
     </div>
   )'
 }

 const UserWithProfileLink = extend(User, props => {
   block('user')({
     apendContent: { block: 'link', href: '/profile', content: 'Профиль' }
   })
 });

extend модфицирует ноды, которые возвращает User. Если пробывали, интересно какие проблемы были
источник

EA

El Anonimo in БЭМ
Привет.
Margin и padding ставят на блок или элемент?
источник

RY

Roman Yaremenko in БЭМ
El Anonimo
Привет.
Margin и padding ставят на блок или элемент?
смотря куда надо ..и туда и туда ставиться
источник

EA

El Anonimo in БЭМ
Roman Yaremenko
смотря куда надо ..и туда и туда ставиться
Вот на https://ru.bem.info/forum/979/ пишут, что блок margin не должен иметь.
источник

RY

Roman Yaremenko in БЭМ
каждая ситуация ндивидуальная , я иногда и на блок кида. падинг/маргин
источник

EA

El Anonimo in БЭМ
Спасибо.
источник

EM

Evgeny Markov in БЭМ
Roman Yaremenko
каждая ситуация ндивидуальная , я иногда и на блок кида. падинг/маргин
Внешних отступов у блоков не должно быть. Только внутренние.

Если нужно позиционировать блок в другом блоке, то он становится элементом родителя и это делается уже через микс. Пример:

Есть блок Page(класс .Page), есть Form (класс .Form). Форма внутри страницы. Тебе нужно навесить на форму дополнительно класс .Page-Form и задать ему внешние отступы.
источник

EA

El Anonimo in БЭМ
Спасибо.
источник

yW

yarastqt World in БЭМ
Павел Зубков
Когда пилили первые версии bem react, не было попыток манипуляции реактовскими нодами?
что-нибудь вроде такого:
  function User(props) => {
   return (
     <div className="user">
       <image className="user__avatar src={props.avatar} />
     </div>
   )'
 }

 const UserWithProfileLink = extend(User, props => {
   block('user')({
     apendContent: { block: 'link', href: '/profile', content: 'Профиль' }
   })
 });

extend модфицирует ноды, которые возвращает User. Если пробывали, интересно какие проблемы были
Непонятно как подобное сделать в реакте, чтобы получить результат компонента нужно его вызвать
источник

yW

yarastqt World in БЭМ
а если компонент содержит состояние или что-нибудь ещё, то проинициализировать
источник

yW

yarastqt World in БЭМ
У нас кейсов, когда нужно докинуть контент не так много и мы решили это обычным react-way способом — добавили слоты в таких местах
источник

yW

yarastqt World in БЭМ
<UserContainer>
 <UserAvatar />
 {addonAfter}
</UserContainer>
источник
2020 July 27

ПЗ

Павел Зубков... in БЭМ
yarastqt World
Непонятно как подобное сделать в реакте, чтобы получить результат компонента нужно его вызвать
его можно вызвать, полученые ноды изменить и обернуть их в функцию, что бы возвращались при ее вызове. Пока они не скормятся реконсилиру, можно что угодно с ними делать
источник

AS

Alexander S. in БЭМ
<div class="block">
 <div class="block block__elem"></div>
</div>


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

SB

Sergey Berezhnoy in БЭМ
Alexander S.
<div class="block">
 <div class="block block__elem"></div>
</div>


Подскажите, это валидный БЭМ?
block__elem на второй строке - это элемент блока, который начинается на первой строке.
Т.е. если на одном узле есть и класс блока и класс элемента этого блока, то это не означает автоматически, что этот код точно не валиден, правильно?
тут есть пара нюансов:
 1) само по себе смешивание блока и его же элемента на одной ноде, это нормально
 2) но в примере разметки есть ещё и вкладывание блока самого в себя (что в принципе тоже имеет право на существование, если есть понятное объяснение зачем)

если есть возможность раскрыть больше реального контекста, что за блоки и зачем, то можно дать более предметную рекомендацию
источник

AS

Alexander S. in БЭМ
Sergey Berezhnoy
тут есть пара нюансов:
 1) само по себе смешивание блока и его же элемента на одной ноде, это нормально
 2) но в примере разметки есть ещё и вкладывание блока самого в себя (что в принципе тоже имеет право на существование, если есть понятное объяснение зачем)

если есть возможность раскрыть больше реального контекста, что за блоки и зачем, то можно дать более предметную рекомендацию
Я потихоньку пилю линтер БЭМа. Поэтому это чисто теоретический вопрос. Спс за ответ :)
источник