@react_js

Страница 4070 из 5115
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
Может я что-то реально не понимаю
https://medium.com/@robinpokorny/index-as-a-key-is-an-anti-pattern-e0349aece318

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
Не едет сортировка
значит все перерендеривается когда могло не делать этого

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
блин, я у себя, везде index юзал
npmjs.com/@atomix/eslint-config-react

Yaroslav
03.06.2018
14:22:37
ок

посмотрю

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

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

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

Про паттерны, про вот это вот всё

Finch
03.06.2018
14:25:15
суть в том, чтобы привязать к данным ид, который не будет меняться от изменения позиции элементов
Ну хорошо, не нравится ID из индекса массива, можно написать функцию в несколько строк, которая сделает уникальный ключ, без учета индекса

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

Cenator
03.06.2018
14:26:00
Anton
03.06.2018
14:26:07
То почему (не) работает твой паттерн непосредственно связано с самой сутью ключей и с её пониманием
Тогда обьясни где я не прав. Я прям думал что понимаю зачем и как ключи работают

Сергей
03.06.2018
14:26:14
так он про это и написал вроде
так может он сделает функцию на основе Math.random()

Дмитрий
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
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
Интересно, а как по реакт просчитывает дерево чилдов

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
А ну да, всё дерево перерасчитывает, если ему Кей не передать

Oleg ?
03.06.2018
14:37:42
:D

Дмитрий
03.06.2018
14:40:21
Я уже год маинтейню react-hot-loader и исходники реакта в районе mount/unmount изучил довольно подробно.
Если человек твёрдо уверен, что понимает всё, то это признак похуже бесовщины с ключами выше

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

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
Общую концепцию запомнить проще чем готовый принцип готовой библиотеки от и до, так как понимание принципа позволяет не запоминать детали
https://github.com/facebook/react/blob/dd5fad29616f706f484938663e93aaadd2a5e594/packages/react-reconciler/src/ReactChildFiber.js#L543 В начале производится проверка key, и в случае успеха идет проверка type в updateElement, которая может или обновить или заменить элемент А если ключи разные - элемент просто проспускается (выкидывается)

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

Дмитрий
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
Карго культ у меня, или у создателей реакта?

Страница 4070 из 5115