Size: a a a

2021 March 01

a

amrl in БЭМ
не ну так как это сигнализирует о плохой декомпозиции?
и почему в этом нет ценности
почему бы не отображать это, это же удобно если я тот же html, например, вообще не пишу а рендерю все через js
и что такое dx?
источник

Р

Роман in БЭМ
Developer eXperience

Вы сами себе создаёте проблему и пытаетесь героически её решить, но не понимаете, почему другие не оценивают ваш энтузиазм. Посмотрите, как удобно сделано в XJST — там блоки декларируются как block('some-block'), элементы — block('some-block').elem( 'logo' ) и т. д. И всё наглядно.

Как выше писал Сергей, достаточно декларации в области блока, а т. к. это один блок, все остальные упоминаемые сущности с большей вероятностью будут элементами.

Если возникнет ситуация, когда внутри блока SomeBlock с элементом Logo (SomeBlock-Logo) мне понадобится задекларировать блок Logo, я просто опишу её внутри SomeBlock-Logo (а не в SomeBlock),  а если это микс, то декларация SomeBlock-Logo вообще не понадобится.
источник

a

amrl in БЭМ
"Как выше писал Сергей, достаточно декларации в области блока, а т. к. это один блок, все остальные упоминаемые сущности с большей вероятностью будут элементами."

об этом я не то имел ввиду (или не правильно понял что вы с Сергеем имели ввиду)

понятное дело, что если я буду декларировать (описывать) элементы в контексте блока (компонента) то мне не нужно будет эта иерархия в имени, тк достаточно будет имени элемента, тк и так понятно что это часть блока

но я говорил что если элемент мне нужно вынести как отдельный компонент в силу того, например, что его логика сама по себе большая
мне нужно показать в имени той же функции что это элемент какого-то блока и что этот элемент я смогу использовать (те вызывать функцию) только в контексте определённого блока

или это уже и проблема что я так делаю?

и к 3 абзацу, в смысле: "я просто опишу ее внутри SomeBlock-Logo (а не в SomeBlock)"?
источник

Р

Роман in БЭМ
> мне нужно вынести как отдельный компонент

— а можно более реалистичный пример?

Даже если предположить что-то типа

import { Logo as SomeBlock__Logo } from '../SomeBlock/Logo'
import { Logo } from '../Logo'

const App = () => (
 <Logo>
   <SomeBlock__Logo />
 </Logo>
)


— это уже пример «ленивой» композиции и чем мучать себя подбором имени переменной лучше правильно разбить компоненты на сущности и описать каждую — в своём файле. В этом и прелесть БЭМ — если что-то кажется сложным, значит с бо́льшей вероятностью вы это делаете неправильно и нужно остановиться и переосмыслить написанное.
источник

Р

Роман in БЭМ
> я просто опишу ее внутри SomeBlock-Logo (а не в SomeBlock)

https://codesandbox.io/s/angry-albattani-ifscq?file=/src/SomeBlock/SomeBlock.js
источник

Р

Роман in БЭМ
Как вариант

// SomeBlock/Logo.js
import { Logo } from "../../Logo/Logo";

const __Logo = () => <Logo />;

export { __Logo as Logo };
источник

SB

Sergey Berezhnoy in БЭМ
amrl
в смысли, элементы же всегда существует в контексте блока или вы о чем?

а так
если у меня есть какой-то там

блок logo
и
блок block, а в нем свой элемент logo, который существует только в его контексте
block__logo то мне нужно будет

function Logo () { // ... }

function Block () {
 // ...
 node.append(Block-Logo())
 return node
}


то я уже не смогу назвать этот логотип блока Block как Logo и Block-Logo не согу тк тире не могу то же

или же скорее всего мне не придется отдельно генерить block__logo, а скорее всего я буду это делать в Block?
я имею ввиду, что вместо Block-Logo достаточно писать Logo, а если возникнет ситуация, что есть и блок Logo и элемент Block-Logo и оба их нужно видеть в одном js файле, то тогда можно без дефиса BlockLogo — да, это не будет совпадать строкового с классами в CSS и с именами файлов, но это такая редкая ситуация, что не так страшно
источник

RK

Roman Kalashnikoff in БЭМ
Ребят, всем привет.

Как запустить project-stub на сервере с Ubuntu и Apache?

У меня есть хост sitename.ru, он смотрит на мой сервер, где этот хост настроен и ведёт в /home/www/sitename.ru/www - если я кладу файлик index.html в эту директорию и в браузере открываю sitename.ru, то открывается мой файл - всё, ок, хост работает

Теперь я кладу в директорию /home/www/sitename.ru/www свой project-stub проект - http://joxi.ru/gmvvBLluqRElem

Выполняю команды:
cd /home/www/sitename.ru/www
npm i
npm start

Пишет далее вот это - http://joxi.ru/DmBLBVZSJYy3vA

Открываю в браузере http://sitename.ru:3000

Пишет "Страница недоступна", а в консоль вываливается это - http://joxi.ru/DrloXwBfVj8lBA

Что делаю не так?
источник

Р

Роман in БЭМ
Roman Kalashnikoff
Ребят, всем привет.

Как запустить project-stub на сервере с Ubuntu и Apache?

У меня есть хост sitename.ru, он смотрит на мой сервер, где этот хост настроен и ведёт в /home/www/sitename.ru/www - если я кладу файлик index.html в эту директорию и в браузере открываю sitename.ru, то открывается мой файл - всё, ок, хост работает

Теперь я кладу в директорию /home/www/sitename.ru/www свой project-stub проект - http://joxi.ru/gmvvBLluqRElem

Выполняю команды:
cd /home/www/sitename.ru/www
npm i
npm start

Пишет далее вот это - http://joxi.ru/DmBLBVZSJYy3vA

Открываю в браузере http://sitename.ru:3000

Пишет "Страница недоступна", а в консоль вываливается это - http://joxi.ru/DrloXwBfVj8lBA

Что делаю не так?
Проблема скорее всего связана с сервером (Apache), а не project-stub'ом. Как во всех подобных случаях нужнно смотреть логи. Может, 3000 порт закрыт.
источник

RK

Roman Kalashnikoff in БЭМ
Попробовал сейчас несколько других портов наугад - то же самое
источник

Р

Роман in БЭМ
Отключи Apache.
источник

RK

Roman Kalashnikoff in БЭМ
Отключил, без изменений
источник

ИВ

Игорь Воробьев... in БЭМ
Roman Kalashnikoff
Отключил, без изменений
в настройках nginx.conf послушать порт 3000, например так proxy_pass http://ip-сервера:3000; после внесений перезапустить nginx
источник

RK

Roman Kalashnikoff in БЭМ
Развернул приложение у себя локально на компе, чтобы без использования Apache - то же самое, значит походу дело в самом приложении(
источник

a

amrl in БЭМ
спасибо)
источник

a

amrl in БЭМ
Sergey Berezhnoy
я имею ввиду, что вместо Block-Logo достаточно писать Logo, а если возникнет ситуация, что есть и блок Logo и элемент Block-Logo и оба их нужно видеть в одном js файле, то тогда можно без дефиса BlockLogo — да, это не будет совпадать строкового с классами в CSS и с именами файлов, но это такая редкая ситуация, что не так страшно
спасибо
источник

NP

Nikolay Ponomarev in БЭМ
Всем привет. Есть кто не спит ?!
источник
2021 March 02

Prikolist Начрэл... in БЭМ
Nikolay Ponomarev
Всем привет. Есть кто не спит ?!
источник

СА

Семен Агафонов... in БЭМ
Пpивeт! Heдaвнo нaткнулcя нa канaл, где мeня нaучили зapaбaтывaть доcтoйныe дeньги в интеpнeте бeз pиcка, а главное cтaбильно.
Рaньше увлeкaлcя стaвками нa cпоpт, но тaм нeт cтaбильноcти. Делюcь c вaми иx кaнaлoм бecплатнo, нo еcли зaxoтитe oтблагoдapить - пишитe в лc)
👇Boт ccылка:👇
https://t.me/joinchat/BQNc2b-0oys0M2Vi
источник
2021 March 03

OL

Oleg L in БЭМ
Пытаюсь сделать вёрстку по БЭМ. В документации написано что блоку нельзя задавать внешнюю геометрию.

*Это значит только отступы и позиционирование (margin, padding, position) ?

*Или также значит и размеры (например width: 100%, height: 100% или width: 500px, height: 400px) ?

*В элемент блока, как написано в документации,  можно добавлять любые стили. Что если у элементов будут фиксированные размеры? Они же по сути будут задавать ту же самую "внешнюю геометрию" для блока (block__element {width: 500px, height: 500px}.

*Скажите - как правильно понимать слово "внешняя геометрия"?
источник