
Emil
07.02.2017
13:07:28
если кому-то эта тема интересна, можете изучить https://github.com/AleshaOleg/holy-grail-markup
сам собираюсь сейчас так сделать

Stanislav
07.02.2017
13:07:44
это не мешает организовывать компонеты в терминах БЭМ

Ilia
07.02.2017
13:07:52

Google

Emil
07.02.2017
13:08:35
я активно юзал БЭМ при работы с Angular 1, сейчас решил, что в нем нет необходимости, хотя стандартизации, да, не хватает

Stanislav
07.02.2017
13:08:57
@bosenok используя CSS-модули?

Ilia
07.02.2017
13:09:07
мне например совсем не нравится шаблонизация в БЭМ. Ну не могу я писать HTML в виде JSON

Emil
07.02.2017
13:09:11
возможно. как раз собираюсь почитать о них
никогда раньше не юзал

Stanislav
07.02.2017
13:09:53
@ofcourseican ну по сути все по БЭМ-у, просто за тебя все классы проставляются
то есть, можно сказать, что это слой абстракции над БЭМ

Ilia
07.02.2017
13:10:24

Emil
07.02.2017
13:10:32
сами?:) интересно девки пляшут, надо покурить доки

Stanislav
07.02.2017
13:10:36
хотя на самом деле - просто более короткий путь к тем результатам, к котрым стремится БЭМ
ну так <style scoped> + vue-loader же
или нет?
по правде говоря я сам еще не пробовал vue-loader, как ни странно

Google

Stanislav
07.02.2017
13:11:15
но вроде ж в доках так написано

Emil
07.02.2017
13:11:15
да да, но я что-то все равно не понял

Stanislav
07.02.2017
13:11:59
пацаны в яндексе запили react-bem-core. Выглядит интерересно.
Доклад с WSD: Cw?list=PLMBnwIwFEFHdF7aJTIHQ_wJ5tkpyG7CNI

Emil
07.02.2017
13:12:05
в доках css modules?

Ilia
07.02.2017
13:12:07

Stanislav
07.02.2017
13:12:47
https://youtu.be/sn-H4r6x-Cw

Emil
07.02.2017
13:13:13
"CSS Module is a CSS file in which all class names and animation names are scoped locally by default." - как и во Vue-компонентах в большинстве случаев

Ilia
07.02.2017
13:13:45
вот. все эти XJST JSX - я считаю извращениями

Stanislav
07.02.2017
13:13:55
ну ты пишешь во *.vue файле:
<template>
<article class="item">...</article>
</template>
<style scoped>
.item { margin: 0 20px; }
</style>
а он тебе на выходе:
<article class="item_498217">...</article>
<style>.item_498217 { margin: 0 20px }</style>
в доках css modules?
та не, было упоминание в доках по Vue.js в разделе где *.vue-компоненты упоминались

Stanislav
07.02.2017
13:14:36
Но дебажить это чуть сложнее, имхо

Stanislav
07.02.2017
13:15:10

Ruslan
07.02.2017
13:15:15

Ilia
07.02.2017
13:16:09

Stanislav
07.02.2017
13:16:27

Ilia
07.02.2017
13:16:28
а вот модификаторы могут быть и в scope

Stanislav
07.02.2017
13:17:06

Влад
07.02.2017
13:17:17
При использовании однофайловых компонентов, если компонент большой можно подгружать стили, скрипты и template через src

Stanislav
07.02.2017
13:17:23

Влад
07.02.2017
13:17:24
В доках есть

Google

Stanislav
07.02.2017
13:17:33

Ilia
07.02.2017
13:18:39

Stanislav
07.02.2017
13:18:39
Оно data атрибуты добавляет и по ним преобразует css классы

? ? ? Alex ? ? ?
07.02.2017
13:19:11
ребят
а зачем слоты
в вуе
можете дать пример или доку
что то найти не могу

trilog
07.02.2017
13:20:26
что то найти не могу
вот ты хочешь впихнуть что-то конкретное в определенный тег, а у тебя в 1 div есть теги типа <h1> <p> и т.д и т.п
и слоты нужны чтобы запихивать в h1 и p разные данные

Stanislav
07.02.2017
13:20:47
<div class="test"></div>
<style scoped>
.test {...}
</style>
будет
<div data-3f7727f class="test"></div>
<style>
.test[data-3f7727f] {...}
</style>
@termosa

trilog
07.02.2017
13:20:52
из родителя (к примеру)

? ? ? Alex ? ? ?
07.02.2017
13:21:23
т.е я смогу дополнять как бы?
или что
доку лучше скиньте)

Stanislav
07.02.2017
13:21:49
А самому?

Stanislav
07.02.2017
13:23:18
ему помогло понять…

Google

? ? ? Alex ? ? ?
07.02.2017
13:23:29

Stanislav
07.02.2017
13:24:05
сейчас на fiddle какой-нибудь залью…

Stanislav
07.02.2017
13:25:39
// component.vue
<template>
<div class="main"><slot></slot></div>
</template>
// App.vue
<template>
<div id="app">
<component>Hello</component>
</div>
</template>
Получится
<div id="app">
<div class="main">Hello</div>
</div>

Stanislav
07.02.2017
13:29:21
https://codepen.io/termosa/pen/MJBxXP?editors=1010

Kelin
07.02.2017
13:48:27
Не знаю, столько шума вокруг бэма, но у меня такое впечатление складывается, что его юзают только потому, что сами не могут нормально именовать и структурировать

Emil
07.02.2017
13:52:54
стандартизированное решение это хорошо

Ilia
07.02.2017
13:53:20

Admin
ERROR: S client not available

Semen
07.02.2017
13:53:49

Kelin
07.02.2017
13:54:01
Мелочно, имхо

Illya
07.02.2017
13:54:33
нет, потому что "понятное именование и структурирование" у каждого разработчика свое
а БЭМ задокументирован
и вокруг этого еще и экосистема написана

Ilia
07.02.2017
13:54:55
Мелочно, имхо
ты просто забиваешь видимо болт и не испытывал боль поддержки больших долгоиграющих проектов

Andrey
07.02.2017
13:55:22

Ilia
07.02.2017
13:56:13
Так что БЭМ это хорошо. У меня сейчас только одна проблема с ним. Как это совместить с Vue и как не писать шаблоны в виде JS и JS объектов... Если первое стопроцентов решаемо, то касательно вроторого я пока не могу найти решение.

Emil
07.02.2017
14:00:03
А что заставляет писать шаблоны в виде JS? Я что-то не понял

Kelin
07.02.2017
14:08:15
Сколько проблем из ничего ?

Google

Emil
07.02.2017
14:09:45
Kelin, вы в большой компании работаете?)

Ilia
07.02.2017
14:35:12

Ruslan
07.02.2017
16:58:24
Привет всем, парни подскажите, судя по всему нубу, как использовать сторы для реактивного отображения компонентов через v-if и возможно вообще такое?? Вот есть например стор пользователя, при инициализации он пустой, при заходе стейт расширяется данными и в теории должно произойти изменение UI, хотябы изменить вид меню (для неавторизированных и авторизированных). Экшны трегирятся в компоненте страницы, а изменения должны быть видны в куске лейаута, хэдере например. Интересно, что через событийность все ходит — если дернуть метод, который смотрит в стейт стора, а рективности на уровне изменения данных — нет?? чяднт?

Timur
07.02.2017
16:59:07
mapState/mapActions/mapMutations из Vuex.
Сейчас кину ссылку.
https://vuex.vuejs.org/en/state.html#the-mapstate-helper
computed: mapState([
// map this.count to store.state.count
'count'
])
Значение count из стора будет доступно в компоненте как computed свойство.

Ruslan
07.02.2017
17:08:29
mapState/mapActions/mapMutations из Vuex.
не помогает, видимо получается что, меню принимает первоначальный стейт, после идет аякс на сервер, проверяет авторизацию, мутация обновляет стейт, и переход на другую страницу, данные на которой зависят от стора, имеют актуальный вид, а меню, в котором присутствует mapState не изменяется..

Kelin
07.02.2017
17:29:17
computed: {
...mapState(...)
}
обычно так пишут, хотя это одно и то же посути
А реактивность в Vuex
Если вы имеете в виду при обновлении информации внутри самого Vuex, то она есть
А изменения из компонента только через commit/dispatch
v-model="$store.state.count" не канает

Ruslan
07.02.2017
17:32:50
Это все верно

Kelin
07.02.2017
17:33:43
а проблема-то в чем?

Ruslan
07.02.2017
17:36:01
Читая еще раз тут, возможно обнаружил причину, надо проверить. Видимо изза навешивания вушных геттеров и сеттеров через defineProperties, реактивность будет работать только через задание первоначальной структуры
Я же стэйт изначально пустым держал. = {}

Kelin
07.02.2017
17:37:36
таки-да

Ilia
07.02.2017
17:38:57
Ребят, вопрос есть. Я не очень разбираюсь в WebPack. Взял сейчас vue-cli с шаблоном webpack. Как я понял там уже Webpack 2. Мне нужен SCSS. Я установил node-sass и sass-loader, но я НЕ правил конфиг. При этом все само заработало. Это попахивает какой то магией. Вопрос: так и должно быть или все таки стоит дописать что-то в конфиг?
В самом конфиге я не вижу никаких rules для sass/scss