
Mike
16.03.2017
17:25:21

Andrey
16.03.2017
17:25:24

Dmitry
16.03.2017
17:26:05
А там как угодно можно ?

Artur
16.03.2017
17:26:10
если ты используешь css-modules, то все кейсы покрыты

Google

Dream
16.03.2017
17:26:26
может он в школе немецкий учил xd)

Mike
16.03.2017
17:27:02
а какая разница? не зная английского порог входа растет экспоненциально почти во все
особенно учитывая что либы ломают бэксовместимость в npm чаще, чем переводы делать успевают даже теоретически)

Andrey
16.03.2017
17:28:22

Artur
16.03.2017
17:31:26
и еще дофига всяких утилит клевых в редакторе

Vladimir
16.03.2017
17:32:02

Mike
16.03.2017
17:32:35

Vladimir
16.03.2017
17:33:08
Критикал цсс лучше с цсс ни жс потому-что можно лези доадить

Andrey
16.03.2017
17:33:58
чтото не могу вкурить. критикалцсс как относится к сццинжс ?

Сергей
16.03.2017
17:34:29

Google

Andrey
16.03.2017
17:35:20
то есть я могу указать какие имена классов мне нужны при серверном рендеринге на странице и оно сделает как я хочу ?

Сергей
16.03.2017
17:35:33
Само работает именно так

Andrey
16.03.2017
17:35:48
оно все стили наа страницу положит ?

Сергей
16.03.2017
17:35:52
Да

Andrey
16.03.2017
17:36:19
оверхедненько.. А есть из коробки чтобы не все а только определённые ?

Сергей
16.03.2017
17:37:23

Andrey
16.03.2017
17:38:03
то есть грузятся только стили пресутствующие на текущей странице ?

Сергей
16.03.2017
17:38:11
На проекте с большим количеством компонентов и стилей очень разницу видно

Andrey
16.03.2017
17:38:22
а. тогда норм.
только это обычные цсс модули умеют не ?
без екстракт-текст-плагина когда

Сергей
16.03.2017
17:39:25

Andrey
16.03.2017
17:39:41
не думал об этом.

Mike
16.03.2017
17:39:50
))

Vladimir
16.03.2017
17:40:18

Andrey
16.03.2017
17:40:58
Ты бы попробовал уже
я не совсем понимал зачем(да и сейчас).
теперь думаю попробовать (когда дело до оптимизаций дойдёт)

Denis
16.03.2017
17:57:46
Смотр ридми в PreJSS :) там целый раздел этому

Google

Paul
16.03.2017
17:59:51
С кешированием на клиенте вопрос уже решили?
Или все еще рендерите JSS на каждый запрос?

Vladimir
16.03.2017
18:02:13

Paul
16.03.2017
18:06:14
Я про SSR

Artem
16.03.2017
18:11:28
я уже плаваю в этих абривиатурах

Vladimir
16.03.2017
18:16:14

Paul
16.03.2017
18:17:37
Его не может не быть(c)
Я про то что оптимизация отдачи критического css в ssr путем постоянного рендера jss на каждый запрос просто напрочь убивается отсутствием возможности кещирования css на клиенте.
И если сайт это не туду лист, а что-то большое, с тысячами компонент и юзеры постоянно заходят, уходят, рефрешат, открывают кучу вкладок, то JSS при наличии SSR это большая регрессия по перфомансу

Andrey
16.03.2017
18:22:34

Vladimir
16.03.2017
18:26:08


Paul
16.03.2017
18:26:41
Я не про бандл а про респонс сервера в случае ssr
В котором у тебя готовая разметка сгенеренная реактом и заполненый тэг style сгенеренный jss.
Генерить css каждый раз без возможности это закешировать на стороне клиента - провал.
CSS-modules с успехом бьются на чанки, кажды из которых будет весить не многим более сгенеренного jss на страницы, при этом этот чанк будет нормально закеширован браузером как и все остальные ресурсы и никогда запрашивать больше не будет.
Поэтому пока JSS в случае SSR не просто не имеет смысла, но просто вреден.
Пока не придумают как это можно улучшить

Vladimir
16.03.2017
18:33:08

Paul
16.03.2017
18:33:18
Нет

Vladimir
16.03.2017
18:33:19
У тебя очень валидный кейс
Окай

Paul
16.03.2017
18:33:29
; )

Andrey
16.03.2017
18:33:40

Paul
16.03.2017
18:34:26
Нет, critical css невозможно закешировать, поэтому его ценность стремится к нулю по сравнению с нормально кешируемом статическим css

Michael
16.03.2017
18:47:31
ребята помогите пожалуйста обработать 404 страницу при обращении к несуществующему post/999999
https://gist.github.com/sanyco86/17e45f4224711a1b114db70d8aec9ee0

Google

Michael
16.03.2017
18:48:00
что то не могу сообразить, как сделать

Artur
16.03.2017
18:48:35
Нет, critical css невозможно закешировать, поэтому его ценность стремится к нулю по сравнению с нормально кешируемом статическим css
ну вроде SSR нам в основном нужен в следующих случаях:
- индексация поисковиками (главный кейс)
- отсутствие необходимости рендерить на клиенте первоначальное состояние (для скорости отображения и nojs, оба варианта целом уже более сомнительные)
для первого наличие стилей не играет вообще никакой роли.
для второго как раз важно иметь критикал цсс, чтобы избежать взрывов
ну и кажется, что компромисс - отсутствие рендера цсс на сервере и дорендер стилей и связывание с компонентами на клиенте до их отображения.
непосредственно дорендер стилей и связывание можно выносить в отдельные чанки при сборке
этого вроде как нет, но готов помочь)


Paul
16.03.2017
18:54:35
Если наличие стилей для поисковика не играет роли, то достаточно иметь правильный sitemap и забить на ssr.
А обычно, если хочешь более высокий ранг и чтобы была возможность просмотра кешированной версии сайта - нужен ssr со стилями

Artur
16.03.2017
18:55:54

Damir
16.03.2017
18:57:21
Поисковики давно умеют исполнять клиентский js

Admin
ERROR: S client not available

Artur
16.03.2017
18:57:46
а кэш версии спокойно грузят и инициализируют скрипты

Vladimir
16.03.2017
18:58:48

Artur
16.03.2017
19:00:49

Paul
16.03.2017
19:05:29

Vladimir
16.03.2017
19:17:23

Paul
16.03.2017
19:21:28
Да, вот из-за того что есть куча фрэймворков со своим типом рендеринга плюс каждый проект использует свой способ асинхронного фетчинга данных, движки скорее всего никогда не смогут сказать - "мы индексируем то что рендерит js"
Просто потому что есть куча комбинаций как кто в какой момент отрисовывает, поисковик не может это все предусмотреть.
Только если заведут спеку на событие, еоторое будет дергать ваш фрэймворк чтобы говорить поисковикам - "готово!"
Причем это было очевидно еще когда начинали, и за несколько лет гугл это событие так и не ввел
А с файбером жизнь у поисковиков которые хоть что-то могли проиндексировать еше сильнее усложнится без такого события

KlonD90
16.03.2017
19:29:47
Ну рендерит сразу
Не проблема в общем-то тот контент который нужен для поисковика

Artem
16.03.2017
19:32:32
Ребят, помогите разобраться пожалуйста, никак не выходит настроить Webpack HMR
делаю по документации:
https://webpack.js.org/guides/hmr-react/
нифига не понимаю почему не хочет отрабатывать...
Интересует следующее:
-----------------------------------------
contentBase: resolve(__dirname, 'dist')
publicPath: '/'
-----------------------------------------
context: resolve(__dirname, 'src')
path: resolve(__dirname, 'dist')
publicPath: '/'
-----------------------------------------
Что означают эти вещи в конфиге и какие значения они должны содержать
Вывожу console.log с resolve(__dirname, 'dist')
выводит d:\dist
Но в url правильные значения попадают
В связи с этим в корень запутался и пробую в слепую
вот такая структура файлов:
https://www.screencast.com/t/17RlbJTOyT

Google

Artem
16.03.2017
19:32:32
вот dev.conofig:
https://gist.github.com/ArtemMaximum/cbdde019aaf0c94b4955fed22af4f34a
вот webpack.dev.server:
https://gist.github.com/ArtemMaximum/f7eaed82d68ce6663e83d09cd255afa9
global.appRoot содержит такое вот значение:
d:\vagrant-projects\architecture\front-end-arch\core\client\build\
в Webpack чатике почти все заснули, может здесь кто отзавется

Mike
16.03.2017
19:36:38
Тут похоже тоже

Alexey
16.03.2017
19:37:05
https://webpack.js.org/configuration/output/#output-publicpath
а contentBase по идее папка с файлами на диске (для дев сервера). Я не копал, но думаю он вотчит их изменения и мидлвары со статикой настраивает

Anton
16.03.2017
19:38:27
А никто не знает куда react-router, катится? Чет с каждой интерацией он все упрощается и упрощается. Слишком упрощается.....

Alexey
16.03.2017
19:39:15
я на третьей версии остановился )

Paul
16.03.2017
19:40:57

Anton
16.03.2017
19:47:03
Раньше хоть некоторые вещи можно было сделать. А теперь все deprecated и попытка улететь не получается

morda
16.03.2017
19:47:58
главное побыстрее переписать)

Anton
16.03.2017
19:55:51
Он бы хоть API фиксировал. Говнокодер :(

Dmitry
16.03.2017
20:06:31
Плох тем что глючный тач бэкенд
Эх, я про react-dnd, забыл чат проскроллить ...
В общем interact.js пока радует. Навесил на элемент реакт-компонента в componentDidMount и вперёд. Немножко с разделением ролей компонент (dragsource и dropzone ) все равно придётся повозиться
А и да, конкретно у interact.js нет функции "таскать клон" из коробки - на гитхабе в issues расписано как вручную переназначить операцию перетаскивания на клона.
Пробовал до этого dragula, он хоть и выглядит проще, но не получилось вообще разобраться.