
Cenator
03.06.2018
14:19:15
значит ты не писал ничего серьезного

Дмитрий
03.06.2018
14:19:15
Я уже один вредный совет удалил, чувствую дальше чистить надо

Сергей
03.06.2018
14:19:19
и перерендеривается всегда

Anton
03.06.2018
14:19:20
И он без ключа работать будет.

Google

Сергей
03.06.2018
14:19:30
и оптимизации реакта в жопе

Дмитрий
03.06.2018
14:19:39
Нет, опять же

Anton
03.06.2018
14:19:51
Ну как же нет?

Andrey
03.06.2018
14:19:57
Оч серьезное пишу в том то и дело

Дмитрий
03.06.2018
14:19:58
Это означает просто что ты никогда не должен менять порядок элементов

Сергей
03.06.2018
14:20:10

Cenator
03.06.2018
14:20:18

Дмитрий
03.06.2018
14:20:18
Потому что при этом у тебя начнутся лютые эзотерические баги

Andrey
03.06.2018
14:20:19
Может я что-то реально не понимаю

Сергей
03.06.2018
14:20:27

Andrey
03.06.2018
14:20:34
Не едет сортировка

Сергей
03.06.2018
14:20:45

Andrey
03.06.2018
14:20:58
Спасибо, ща вникну

Google

Finch
03.06.2018
14:21:06

Cenator
03.06.2018
14:21:11

Сергей
03.06.2018
14:21:13

Cenator
03.06.2018
14:21:28

Сергей
03.06.2018
14:21:31
суть в том, чтобы привязать к данным ид, который не будет менять от изменения позиции элементов
можно при получении данных с сервера, нагенерить айдишников

Anton
03.06.2018
14:22:05
Еще очень классный паттерн
{ [ <SomeComponent key={someVariable} /> ]}
^ при изменении размаунтит старый компонент и примаунтит новый.
Такой супер жесткий forceUpdate.

Yaroslav
03.06.2018
14:22:11
блин, я у себя, везде index юзал
(
буду править

Сергей
03.06.2018
14:22:23

Yaroslav
03.06.2018
14:22:37
ок
посмотрю

Cenator
03.06.2018
14:23:00
а вообще - редко

Finch
03.06.2018
14:23:27

Anton
03.06.2018
14:23:30
Когда надо все загрузчики заново дернуть - самое то

Дмитрий
03.06.2018
14:23:42

Сергей
03.06.2018
14:23:44
А разница какая?
суть в том, чтобы привязать к данным ид, который не будет меняться от изменения позиции элементов

Google

Дмитрий
03.06.2018
14:24:11
Вот то что ты сейчас несёшь — это можно делать не вслух, результат будет тот же, я тебе обещаю
Про паттерны, про вот это вот всё

Finch
03.06.2018
14:25:15

Дмитрий
03.06.2018
14:25:31
То почему (не) работает твой паттерн непосредственно связано с самой сутью ключей и с её пониманием

Cenator
03.06.2018
14:25:42

Сергей
03.06.2018
14:25:48

Cenator
03.06.2018
14:26:00

Сергей
03.06.2018
14:26:04

Anton
03.06.2018
14:26:07

Сергей
03.06.2018
14:26:14

Дмитрий
03.06.2018
14:26:31
Просто, блин, он личный

Дмитрий
03.06.2018
14:26:52
Ты сам потом с фейспалмом свой паттерн вспомнишь

Anton
03.06.2018
14:27:35
Потому что он кривой и не красивый? Или какая другая причина?

Finch
03.06.2018
14:27:43

Сергей
03.06.2018
14:29:10

Дмитрий
03.06.2018
14:29:18

Сергей
03.06.2018
14:30:07
https://reactjs.org/docs/reconciliation.html#keys

Anton
03.06.2018
14:31:07
[<Todo key={1} />, <Todo key={2} />] - О! Новые ключики
[<Todo key={1} />, <Todo key={3} />] - О! Ключ 2 пропал, надо (именно) размаунтить
[<Todo key={10} />, <Todo key={20} />] - О! Оба ключи того - убиваю
[<Todo key={1} />] -> [<Todo key={2} />]
старый todo пропал, ему unmount, новый появился - mount
[<Todo key={1} />] -> [<Todo key={1} />]
ничего не изменилось, ничего не делаем.

Сергей
03.06.2018
14:31:18
v

Google

Сергей
03.06.2018
14:31:34

Andrey
03.06.2018
14:31:50

Anton
03.06.2018
14:32:42

Oleg ?
03.06.2018
14:33:02
JSON.stringify и поiхали

Admin
ERROR: S client not available

Oleg ?
03.06.2018
14:34:04
Интересно, а как по реакт просчитывает дерево чилдов

Дмитрий
03.06.2018
14:34:10
no offence

Yumi
03.06.2018
14:34:46
Зачем называть паттерном, что является функционалом библиотеки? Ключи решают конкретную проблему, следует только передавать id из полученных данных.

Сергей
03.06.2018
14:34:52

Oleg ?
03.06.2018
14:35:16
Нет, я про другой случай

Anton
03.06.2018
14:35:32
Я уже год маинтейню react-hot-loader и исходники реакта в районе mount/unmount изучил довольно подробно.

Oleg ?
03.06.2018
14:36:54
А ну да, всё дерево перерасчитывает, если ему Кей не передать

Сергей
03.06.2018
14:36:59

Oleg ?
03.06.2018
14:37:42
:D

Дмитрий
03.06.2018
14:40:21

Anton
03.06.2018
14:40:46
Потому и спрашиваю где конктретно я не прав

Сергей
03.06.2018
14:40:47

Google

Дмитрий
03.06.2018
14:41:49
Общую концепцию запомнить проще чем готовый принцип готовой библиотеки от и до, так как понимание принципа позволяет не запоминать детали

Oleg ?
03.06.2018
14:43:32
Порой без знания принципов можно наломать дров

Дмитрий
03.06.2018
14:43:55
Это не про то

Сергей
03.06.2018
14:43:58

Oleg ?
03.06.2018
14:44:17
Ну рано или поздно да, но раз не про то)

Дмитрий
03.06.2018
14:48:44
Хотя наверное да, про то)

Anton
03.06.2018
14:59:42

Дмитрий
03.06.2018
15:02:40
Почему ты решил, что имплементация что-либо говорит тебе о концепции, стоящей за ней

Andrew
03.06.2018
15:02:50

Дмитрий
03.06.2018
15:03:04
Я тебе сразу сказал, что всё что ты предложил вполне работает, но от этого не становится менее абсурдным
Это и есть культ карго, в данном случае вместо соломенного самолёта — понимание кода вместо осознания идеи
Реакт ключем задаёт подход к представлению твоих данных
Это не трамплин который нужно лихо перепрыгивать, это направляющая

Anton
03.06.2018
15:04:09
Обожди - ключ есть и “всегда будет” указателем на то, для чего создан элемент.
Если ключ меняется - значит это почти точно “другой элемент”, просто потому что lifecycle _должен_ отработать

Дмитрий
03.06.2018
15:04:19
Это и есть культ карго, в данном случае вместо соломенного самолёта — понимание кода вместо осознания идеи

Anton
03.06.2018
15:04:53
Карго культ у меня, или у создателей реакта?