
Oleg ?
13.05.2017
09:19:51
))

? ethorz
13.05.2017
09:21:09
просто я использую такой подход, есть допустим в компоненте такой набор <Button /> <Popup />, так же я прокидываю всё через пропсы, к примеру <Button handler={ this.submitForm } />
сам хендлер я описываю в компоненте (контейнере)

Oleg ?
13.05.2017
09:22:30
Посмотри на styled-component

Google

Oleg ?
13.05.2017
09:23:07
Пример, который ты привел, вполне нормальный

? ethorz
13.05.2017
09:23:22
окей
а есть другие подходы?

Oleg ?
13.05.2017
09:23:31
Только я бы передавал в параметр onClick
Ну если много параметров, то лучше засунуть их в объект и передать спред оператором
Так код будет чище и понятнее

? ethorz
13.05.2017
09:24:36
параметр, ты имеешь ввиду функциональные компоненты?
А если набор параметров не фиксированный?

Oleg ?
13.05.2017
09:24:53
Нет, сейчас до компа дойду покажу

? ethorz
13.05.2017
09:25:13
ааа, или ты про пропсы?

Oleg ?
13.05.2017
09:25:17
Всё ровно
Я про пропсы

? ethorz
13.05.2017
09:25:41
<Button onClick={ this.submitForm } />

Google

Oleg ?
13.05.2017
09:25:58
Ща, уже комп вклбчил
const options = {
key: subject,
title: subject,
onClick: () => { this.handleSelectSubject(subject); },
isSelected: selectedSubject === subject,
};
return (
<TemplatesMenuItem {...options} />
);

? ethorz
13.05.2017
09:26:33
а в Button - <input type="submit" {...this.props} >
понял, такой подход объектом лучше

Oleg ?
13.05.2017
09:27:18
Да, код становится чище и лучше
Он если у тебя один прос нужно передать, то это избыточно - создавать отдельный объект

? ethorz
13.05.2017
09:27:54
я понял
говорится о множестве

Oleg ?
13.05.2017
09:28:08
?

? ethorz
13.05.2017
09:28:12
спасибо

Oleg ?
13.05.2017
09:28:55
А ещё всякие события типа this.submitForm, мы называем handleSubmitForm
То есть начинаются они с префикса handle

? ethorz
13.05.2017
09:29:14
да я пишу от балды
щас

Oleg ?
13.05.2017
09:29:19
Окей)

? ethorz
13.05.2017
09:29:23
не думаю над неймингом
кстати, использует кто https://github.com/Khan/aphrodite ?

Макс
13.05.2017
09:30:57
Привет! Подскажите, плиз. Пытаюсь cделать full-stack приложение. В какой-то момент до меня дошло, что по сути клиент и сервер - это два разных приложения. И в большинстве случаев их запускают на разных портах. Но где-то я видел пример, как приложение и на сервере и на клиенте запускалось на одном URL и все работало.
Вообще, какая практика работает на продакшене? Это два абсолютно разных приложения (клиент и сервер) или все же это некий единый набор, который может использовать одинаковые классы, библиотеки, модели?
Пересмотрел штук 15 всяких темплейтов - везде все разное. (

Oleg ?
13.05.2017
09:31:49
Нет, я пока использую обычную подгрузку css, но планирую перейти на styled-components

Google

? ethorz
13.05.2017
09:32:31

Макс
13.05.2017
09:32:40
Где искать best practices?

? ethorz
13.05.2017
09:32:59
могу ошибаться)

Сергей
13.05.2017
09:33:01

Oleg ?
13.05.2017
09:33:04
Если это разные приложения, и код для клиента ни как не генерируется, то можно смело выносить отдачу клиента в nginx
Про best practice: Если что - то вызывает у тебя боль, значит это можно улучшить. Просто гуглишь на ту тему, которая вызывает боль или спрашиваешь тут
Я вот реакт пол года назад не умел
Наломал дров, вначале, однако эти дрова сейчас работают, и я их не спешу рефакторить
А новые штуки пишу уже с опытом
В этом весь прикол, что можно рефакторить поэтапно или не рефакторить вообще в реакте)

Макс
13.05.2017
09:37:50
Задачи, конечно, разные. На сервере все же больше данными нужно манипулировать, а не представлением. Но писать на разных языках - не прикольно.

Oleg ?
13.05.2017
09:39:20
Я слышал что это вызывает боль
Думаю тебе эта статья поможет: https://habrahabr.ru/company/tinkoff/blog/303580/
Они там делали Универсальное приложение
Но я против этой практики
Когда я только пришёл работать в крупную компанию, я сделал смелый шаг, и разбил репозитории клиента и сервера
И ни разу не жалею

Макс
13.05.2017
09:41:19

Google

Oleg ?
13.05.2017
09:41:53
Да

Макс
13.05.2017
09:42:41
А сервер и клиент на разных доменах?

Oleg ?
13.05.2017
09:42:44
Фронтенд - это React приложение, которое загружается через nginx и общается с бэком через сокеты, а бэк - это приложение, которое работает с базой
Да
Фронтенд вообще на CDN
А сервер на локальной машине

Макс
13.05.2017
09:43:13
что-то типа api.myserver.ru?

Oleg ?
13.05.2017
09:43:53
Можно и так, но у нас топорнее myserver.ru
Просто ngnix всё проксирует

Admin
ERROR: S client not available

Oleg ?
13.05.2017
09:44:30
Сокеты на сервер отправляет, а запрос на контент грузит с тачки
Ща схему нарисую

Макс
13.05.2017
09:45:07
Просто с разными доменами, я так понимаю надо еще вопрос кроссдоменных запросов решать. Или сервер вообще принимает запросы от кого угодно?

Oleg ?
13.05.2017
09:46:56
Как то так, в упрощёном виде
Там ещё это всё завёрнуто в CDN
То есть между nginx и Assets/Css/Js/Images & WebSocket стоит CDN

Макс
13.05.2017
09:49:54
Олег, спасибо огромное, пошел практиковаться ))

Oleg ?
13.05.2017
09:50:31
Да, советую ещё подумать)

Google

Oleg ?
13.05.2017
09:51:05
Я обычно даю простым идеям настояться 1 день, сложным неделю - так сказать, чтобы они созрели)
Если у тебя команда маленькая, то бери мой вариант, если 20+ человек, можешь взять то, что у команды тинькова

Макс
13.05.2017
09:58:20
Я в одного думаю уже 2 недели и щупаю всякие разные варианты. Уже прошелся по Angular, Vue, React, Express, Typescript, Babel и прочим умным словам... Приложение-то так - маленькое. Не из необходимости, а скорее ради того, чтобы пощупать новые технологии. Я из мира php, Yii и вот этого всего )

Oleg ?
13.05.2017
09:59:51
Советую этот сайт: http://www.npmtrends.com/react-vs-angular-vs-vue
На нём можно сравнить популярность фреймворков
Лучше брать самый популярный - быстрее найдёшь ответ, да и испытан он большим количеством разработчиков

Max
13.05.2017
10:01:53
там пиздец
я там был
если подобного хочется то vue
он понятнее и проще

Oleg ?
13.05.2017
10:03:07
Да, последний ангуляр расчитан на большие команды и проекты

Макс
13.05.2017
10:03:10
А подскажите еще имеет ли смысл на простых сайтах уходить от jQuery в пользу чего-то более современного. Чтобы не делать всю эту лапшу по управлению DOM. Использовать React ради нескольких интерактивных элементов - overhead или нормально?

Oleg ?
13.05.2017
10:03:33
Либо Vue, либо React, либо JQuery
Но не комбинировать

Max
13.05.2017
10:03:43
я делал небольшие виджеты
на вуе
вполне себе
типа маленькой формы-калькулятора
есть еще преакт вроде

Oleg ?
13.05.2017
10:04:18
Можешь использовать только JQuery, если хочешь
https://medium.com/@webseanhickey/the-evolution-of-a-software-engineer-db854689243