
Kosmos
11.06.2017
17:11:33
Я тоже использую для состояник isActive и прочее. Это распространенная пратика. А вот для модификаторов, с bemto про который писал в статье проблем нет, вот можно на сайте почитать, как работют миксины, запись минимальная, все понятно, руками простыни писать не приходится. https://github.com/kizu/bemto

Rustam
11.06.2017
17:12:53
block block_foo
Block mFoo
вот пример ада: block block_foo block_bar block_baz

Google

Rustam
11.06.2017
17:13:40
Block mFoo mBar mBaz
и всё, намного короче

Kosmos
11.06.2017
17:17:18
Так а селетор то для mBar у тебя как будет? БЕМ это же не просто про названия, а про создание "плоского" дерева селекторов, когда у тебя все стили привязаны к отдельным классам. Твой подход этого не позволяет сделать. БЕМ это не про название классов, а про то как сделать, что бы браузеру не нужно было парсить дом дерево, что бы применить твои стили. Уникальность имени block__foo - позволяет єто сделать, а вот mFoo нетю

Rustam
11.06.2017
17:17:32
.Block.mBar
PascalCase + camelCase создают условия, что коллизия не возможна

Kosmos
11.06.2017
17:18:28
Вот, так это совсем дургое, этот селектор дольше обрабатывается браузером чем состояший просто из одного класса. Ты просто не доконца понял, для чего делался бем и в чем его суть и польза.

Rustam
11.06.2017
17:18:38
дольше?))))

Kosmos
11.06.2017
17:18:41
да

Rustam
11.06.2017
17:18:51
это фигня на фоне например того что такое box shadow

Kosmos
11.06.2017
17:19:00
Это чисто теория графов. найти вершину, или или найти пересечение двух ветвей.

Rustam
11.06.2017
17:19:01
и на фоне операций с DOM

Kosmos
11.06.2017
17:19:16
Так это и есть операции с дом.

Rustam
11.06.2017
17:19:28
это не операция с дом, это лишь класс

Google

Rustam
11.06.2017
17:19:43
операция будет когда будет вставляться меняться удаляться элемент

Kosmos
11.06.2017
17:19:48
Я к тому, что прежде чем ругать BEM, все же стоит лучше разобраться для чего он вообще делался.

Rustam
11.06.2017
17:20:16
костыли это, их изначальная идея с префиксами была может и сложнее, но намного лучше
а БЭМ был идеально актуален для ие6

Ilia
11.06.2017
17:20:58
Бэм и сейчас актуален
Нет лучшего способа структурировать стили

Rustam
11.06.2017
17:21:18
БЭМ не использует умножение классов
есть, я показал

Вишневый чай
11.06.2017
17:21:25
думаете бэм ужасен? это вы еще css in js не видели

Kosmos
11.06.2017
17:21:28

Rustam
11.06.2017
17:22:51
есть на самом деле способ как это ещё упростить
Polymer

Ilia
11.06.2017
17:23:12
есть, я показал
Это не то... Не хочу вступать в полемику. Кто хочет чистоты стилей, и четких правил - сам приходит к БЭМ.

Вишневый чай
11.06.2017
17:23:22

Rustam
11.06.2017
17:23:32
ага

Вишневый чай
11.06.2017
17:23:35
да вы батенька знатный извращенец

Rustam
11.06.2017
17:23:43
почему? ShadowDOM

Kosmos
11.06.2017
17:23:53
Ты на этапе упрощения, потерял саму суть для чего он делался. Это как выбросить товар, оставив упаковку, и сделаьт лучше упаковку. :)

Rustam
11.06.2017
17:24:22
когда я верстал под ие6, уже тогда я изобрёл аналог БЭМ под ие6

Google

Rustam
11.06.2017
17:24:44
я помню стили типа Block_In_In_In
была и остается (но уже никогда не реализуют) спецификацию 4 псевдоэлементов

Ilia
11.06.2017
17:25:25

Kosmos
11.06.2017
17:25:44
:)

Rustam
11.06.2017
17:26:11
вот эта спецификация - это то, что на самом деле нужно

Kosmos
11.06.2017
17:26:24
Рустам наверно крутой программист и многое повидал, но именно что бы этого не видать, я использую бем :)

Rustam
11.06.2017
17:26:29
прямые дети внутри, обёртки
давайте я накину вам проблем от БЭМ
нужно элементу 5 детей чтобы всю красоту дизайна вписать
как будут выглядеть классы?
div>child>child>child>child>child
такое^

Kosmos
11.06.2017
17:27:23
В беме нет понятия, детей.

Rustam
11.06.2017
17:27:39
я говорю как будут выглядет ьклассы?
дизайн так сделан, по другому никак

Gaiaz Iusipov
11.06.2017
17:27:52

Вишневый чай
11.06.2017
17:28:48

Kosmos
11.06.2017
17:28:57
Рустам, вы сейчас задали вопрос, по которому понятно, что вы вообще не понимаете, что такое бем. Зачем тратить время на безсмысленный спор, лучше возьмите и прочитайте хорошую статью по бему. Возможно вы откроете для себя, что-то новое полезное.

Rustam
11.06.2017
17:29:10

Вишневый чай
11.06.2017
17:29:19
почитайте

Google

Rustam
11.06.2017
17:29:48
дети без смысла - класс .in, элемент в списке .e, стили для них через > всегда, и никаких коллизий в итоге

Вишневый чай
11.06.2017
17:30:54
и да, про полимеры вместе с vue, это как то слишком экстра. У меня есть сомнения на тему того что вы хорошо представляете себе о чем говорите

Rustam
11.06.2017
17:31:15
даже с ангуляром и реактом вместе работают
другая проблема - а зачем тогда нужны vue angular и react?

Ilia
11.06.2017
17:31:34

Kelin
11.06.2017
17:32:21
ооо, а я думаю, откуда так воняет

Вишневый чай
11.06.2017
17:32:27

Admin
ERROR: S client not available

Rustam
11.06.2017
17:38:33
вы в смысле мне пытаетесь сказать что эта метология заточена толкьо для решения одной какой-то проблемы?


Gregory
11.06.2017
18:03:53
напиши бэм на 4 уровня глубину + состояние - как выглядит класс
Ты про такое?)))
.block
.block__elem1
.block__elem2
.block__elem3
Исходя из твоего вопроса, вижу что ты пока незнаком с БЭМ) Но ниче, это нормально сразу его не понять.
Есил коротко БЭМ для верстки это как привнесение возможности программирования (типа препроцессоров, где есть возможности JS) но по средством именования классов (и не только).
БЭМ сущность (блок с его элементами и модификаторами) рассмотрим ее на примере языка Java, Блок это как класс в джаве, элементы как методы, а модификаторы типа переменных и передаваемых в методы аргументов.
Каждая БЭМ сущность это назависимый блок верстки на сайте, где все элементы и модификаторы внутри имеют как бы область видимости только внутри этого блока. Его можно спокойно переносить из места в место и верстка при этом не "потечет". И это круто, ты можешь использовать одни и теже имена для элементов для всех блоков, но они не будут мешать другу другу.
БЭМ это пожалуй лучший на сегодняшний день подход для верскти, а так же он применим к любому языку и вообще организации файлов в проекте.
К сожалению по БЭМ мало практических примеров, потому и возникают такие вот недопонимания и необоснованные наговоры на него)


Dima
11.06.2017
19:20:23
Подржжите
Выше писали, что жест не совместим с вью
Это как вообще
Я не трогал, но вопросы это у меня вызывает

Kosmos
11.06.2017
19:32:24

Valery
11.06.2017
19:44:04
привет всем.
имею глобальный фильтр -
Vue.filter('singleDivider', (value) => {
return value ? value / 1000 : null
})
но есть еще пара, которые хочу добавить в глобальные фильтры.
Мне что - писать каждый раз Vue.filter(bla-bla) или как-то можно объединить их?

Igor
11.06.2017
19:47:10

Valery
11.06.2017
19:50:54

Google

Igor
11.06.2017
19:53:36
ну вообще, можно было бы написать всё то же самое, только через Object.entries(), например.
let filters = {
one: …,
two: …
}
Object.entries(filters)
.forEach(f => Vue.filter(...f))
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/entries

Valery
11.06.2017
19:57:14

Igor
11.06.2017
19:58:08
так погоди, такого нет. Это я просто спросил, какую запись ты хочешь видеть.
я просто не вижу проблемы писать Vue.filter(name, func) несколько раз.

Valery
11.06.2017
19:58:44

Igor
11.06.2017
19:59:45

Valery
11.06.2017
20:01:12

Liv
11.06.2017
20:12:07
Разве данные из props не реактивные? А то рендерю список, кликаю по пункту, по клику иду обновляю поле active - а в DOM класс не появляется.
<div
class="city-item"
:class="{active:item.active}"
@click="onClick"
:data-id="item.id"
v-for="item in list"
>
{{ item.address }}
</div>
list приходит в props. Класс active не включается.
http://prntscr.com/filoia

Kosmos
11.06.2017
20:16:53
Не плохо было бы увидеть js часть компонента.
Функцию onClick
А если вынести <template v-for="item in items"> такое же поведение?

Igor
11.06.2017
20:23:41

Liv
11.06.2017
20:24:44
А если вынести <template v-for="item in items"> такое же поведение?
не могу так вынести, вот полный темплейт
<template>
<scrollbar :style="styleObject" class="citiesList" ref="scrollbar">
<div
class="city-item"
:class="{active:item.active}"
@click="onClick"
:data-id="item.id"
v-for="item in list"
>
{{ item.address }}
</div>
</scrollbar>
</template>

Igor
11.06.2017
20:26:38
с символом обратной кавычки.

Liv
11.06.2017
20:29:50
с символом обратной кавычки.
странно, у меня иначе отображается. Код выкладываю после тройной обратной кавычки - вроде многострочный код так выкладывается. Мб что-то с вашей темой? Вот как у меня отображается http://prntscr.com/filw52