
Vladimir
29.04.2016
11:45:03
https://github.com/sapegin/react-styleguidist

Denis
29.04.2016
11:46:52
Коллеги, а кто в каком порядке методы в компонентах определяет?
1. constructor, lifecycle, handlers, sub-renders, render, utils
2. constructor, lifecycle, render, sub-renders, handlers, utils
3. constructor, utils, handlers, sub-renders, render, lifecycle
4. ...?

from
29.04.2016
12:20:45
4

Google

Алексей
29.04.2016
12:21:00
constructor, geters, lifecycle, render, handlers, utils

from
29.04.2016
12:21:27
constructor, lifecycle, handlers, [sub-renders, utils,] render

Алексей
29.04.2016
12:21:35
хотя тут geters можно прировнять и utils/sub-render, но я их обычно в вверх выношу
приравнять*

Denis
29.04.2016
12:22:32
интересно

Alexander
29.04.2016
12:24:03
а все придерживаются рекоммендации фейсбука и делают все компоненты в системе с уникальными именами7
я че то подзадолбался. Супер длинные имена уже

Алексей
29.04.2016
12:26:20
AnotherComponentInLeftSidebarOnAboutPage?:D

Alexander
29.04.2016
12:26:31
ага(

Roman
29.04.2016
12:26:57
а как же реюзабельные компоненты?

Andrey
29.04.2016
12:27:03
Тоже за вариант -
constructor, lifecycle, handlers, [sub-renders, utils,] render
В конце рендер удобно держать.

Алексей
29.04.2016
12:27:38
я рендер иногда вообще в отдельный файл выношу, тип template.js

Roman
29.04.2016
12:27:50
constructor, lifecycle, ...whatever..., render

Google

Alexander
29.04.2016
12:27:50
ну реюзабельные или нет, все равно их много

Denis
29.04.2016
12:27:57
medium.com/@DenisIzmaylov/application-and-universal-components-7b760f1d4831

Алексей
29.04.2016
12:28:43
просто сейчас где я работаю, до этого кложур от гугла использовали, а там структура такая, что компонент это папка

Alexander
29.04.2016
12:28:49
хотя и так уже все сгруппировано по папкам, если бы не требование уникальных имен можно было бы сделать так:
AboutPage/LeftSidebat/User.js

Алексей
29.04.2016
12:29:00
и там два файла index.js/template.js

Alexander
29.04.2016
12:29:13

Алексей
29.04.2016
12:29:22
поэтому я чтобы не сбивать других коллег и им легче было перейти на React и вебпаки всякие
сохраняю такую идею, но template обычно только в контейнерах
а обычные компоненты в index.js помещаются

Roman
29.04.2016
12:29:49
https://medium.com/@alexmngn/how-to-better-organize-your-react-applications-2fd3ea1920f1?utm_campaign=React%2BNewsletter&utm_medium=email&utm_source=React_Newsletter_29#.lf69bwwbu
тут тоже пишут про группировку по папкам

from
29.04.2016
12:34:05
это ты к чему?

Alexander
29.04.2016
12:35:14

Viktor
29.04.2016
12:42:20
для продакшена поделитесь через что прогоняете бандл

Алексей
29.04.2016
12:46:06
кстати, а кто-нибудь действительно пишет тест для компонентов?

Nikita
29.04.2016
12:49:28
@Melongeno я писал, но для опенсорс компонентов и очень простые
а какой вопрос?

Alexey
29.04.2016
13:33:23
@DenisIzmaylov не, у меня пока не ахти :)

Michael
29.04.2016
13:39:49
Airbnb React/JSX Style Guide
https://github.com/airbnb/javascript/tree/master/react

Google

Антон
29.04.2016
13:39:53
Коллеги, а кто в каком порядке методы в компонентах определяет?
1. constructor, lifecycle, handlers, sub-renders, render, utils
2. constructor, lifecycle, render, sub-renders, handlers, utils
3. constructor, utils, handlers, sub-renders, render, lifecycle
4. ...?
constructor, lifecycle, publicMethods, render, privateMethods

Egor
29.04.2016
13:45:45
1

from
29.04.2016
13:46:40

Антон
29.04.2016
13:47:20
не юзать из вне
Но там в основном utils, handlers
handerls обозначаем по старинке _on…()

Nikita
29.04.2016
13:49:13
ужас
зачем хэндлерам добавлять _ префикс?

from
29.04.2016
13:50:11
Ну условно на самом деле =) Прост договорились их не юзать обзначаем через _
Вот именно, что условно. Потому на мой взгляд странная имитация.
Хочется реально private method — так можно же просто к компоненту не цеплять, типа так:
function privateUtilMethod() { ... }
class SomeComponent extends React.Component { ... }
а если не хочется...то зачем их приватным считать?
И на мой взгляд писать что-либо ниже render() жутко неудобно.
Когда читаешь код компонента, как-то инстинктивно ждёшь, что к моменту рендеринга всё необходимо уже написано сверху.
*необходимое

Антон
29.04.2016
13:51:10

from
29.04.2016
13:51:38
:)) ну началось

Ҫѐҏӗѫӑ
29.04.2016
13:52:43
был у нас один такой (есть все еще), писал “приватные” методы через _. я потом себе глаза выколол

Антон
29.04.2016
13:53:13

Ҫѐҏӗѫӑ
29.04.2016
13:53:26
тем, что у меня глаз теперь нету

Nikita
29.04.2016
13:54:01
:D

Ҫѐҏӗѫӑ
29.04.2016
13:54:14
о, это папа мой
(я Сергей Евгеньевич — тру стори)

Антон
29.04.2016
13:57:46
Коллеги, я честно говоря, не совсем понимаю почему _ в качестве обозначение приватности это не хорошо. В Go такая практика - норма. В JS JSdoc так определяет метод по _ его открытость

Google

Vladimir
29.04.2016
13:58:27
потому что это неправда же
это видимость приватности

Антон
29.04.2016
13:58:49

Anton
29.04.2016
14:00:01
Вобще да, соглашение есть соглашение

Ҫѐҏӗѫӑ
29.04.2016
14:00:25
то есть соглашения over инвалидность — это ок?

Anton
29.04.2016
14:00:30
Тем не менее, думаю, что писать приватные методы как функции вне объявления класса практика лучше

Антон
29.04.2016
14:02:51

hlomzik
29.04.2016
14:03:25

Ҫѐҏӗѫӑ
29.04.2016
14:03:44
сорян, я что-то упустил видимо там выше, но как могут быть приватные методы вне класса? они приватные методы чего?

Mark
29.04.2016
14:04:20
А что, никто не делает приватные методы и проперти символами?

Anton
29.04.2016
14:05:23
function privateMethods() {
console.log(this.a);
}
export default class SomeClass {
constructor() {
this.a = 1;
}
somePublicMethod() {
privateMethod.call(this);
}
}
Форматирование :с

Ҫѐҏӗѫӑ
29.04.2016
14:05:57
сорян, я что-то упустил видимо там выше, но как могут быть приватные методы вне класса? они приватные методы чего?
я должен тебе кое-что рассказать. сорян..
Symbol.for(key)

Aleksey
29.04.2016
14:06:13

Ҫѐҏӗѫӑ
29.04.2016
14:06:21
я не хотел, но..
ой
не то зацитировал
вообще символы не для этого

Google

Ҫѐҏӗѫӑ
29.04.2016
14:07:20
а для того, чтобы говноспеку в “порядок” привести
Symbol.iterator и тд
для утят

Mark
29.04.2016
14:07:49
Symbol.for("test") не вернёт тоже что Symbol("test")

Антон
29.04.2016
14:08:16

Mark
29.04.2016
14:08:49

Ҫѐҏӗѫӑ
29.04.2016
14:09:38
есть еще со времен es5
ваще-то
defineProperty
^ норм

Denis
29.04.2016
14:10:56
когда можно будет emojii кидать?
в коде

Ҫѐҏӗѫӑ
29.04.2016
14:11:22
через секунду можешь

hlomzik
29.04.2016
14:11:32
SexyComponent["@renderTime"]()
Сорри, нет эмодзи. И приватности нет :)

Ҫѐҏӗѫӑ
29.04.2016
14:12:25
хз, у меня есть