@react_js

Страница 2398 из 5115
Anatoly
24.10.2017
21:28:21
у меня просто нет доступа к объекту стора в этот момент, может я просто неправильно понял, делал давно, сейчас знаю немного больше, но рефакторинг ещё не пришёл :)

from
24.10.2017
21:30:04
Для тебя они могут существовать в любом месте, но если при этом они все будут в реальности находиться по одному адресу, самый базовый код управления стором просто будет проще и быстрее
Что если одна «секция» обновляется несколько десятков раз в секунду и слабо влияет на другие секции Можно разделить, чтобы с каждым обновлением не прогонять остальные редьюсеры

Дмитрий
24.10.2017
21:30:31
Это по прежнему логическое разделение

from
24.10.2017
21:30:58
Я не говорю, что вот такое разделение единственное решение, но так уж повелось и вот они сломали (повторю, случайно) поддержку

Google
Дмитрий
24.10.2017
21:31:28
То что redux не подразумевает такой фичи — это проблема всех нас, потому что за три года никто так и не нашёл времени улучшить 30 строк кода, простых как мычание

Дмитрий
24.10.2017
21:32:39
Я конкретно про твой пример выше

К тому что это по прежнему не подразумевает разных сторов)

from
24.10.2017
21:33:04
Про то, чтобы при обновлениях одного слайса не затрагивать другие?

Дмитрий
24.10.2017
21:33:12
Да

from
24.10.2017
21:33:12
Хм

Дмитрий
24.10.2017
21:34:19
Есть лишь ряд концептуальных открытых вопросов, не позволяющих так сделать сейчас, но чисто технически это делается тривиально

from
24.10.2017
21:34:32
Да, что-то я с этой стороны не думал об этом Хороший подход тоже Но ещё более маловероятно, что в официальной репе редакса это будет

Дмитрий
24.10.2017
21:35:18
Так же как и в репе нокаута

Новая концепция — новая библиотека, нормальный подход

from
24.10.2017
21:36:27
Не согласен что это на новую библиотеку тянет

Google
from
24.10.2017
21:36:43
По сути же можно просто обозначить особый экшн

Дмитрий
24.10.2017
21:37:03
Это должна быть совершенно иная идеология, не то что библиотека

redux решал именно данную проблему — когда отдельное поле в сторе не может начать интересоваться своим собственным списком экшнов, то есть это вообще сама идея редакса и была, что всё может слушать всё

Соответственно "особый экшн" — это костыль

А хотя стоп, о чем это я, у меня именно так всё и работает прямо сейчас

Anatoly
24.10.2017
21:42:06
на костылях?) а что имеется ввиду под слайсом? кажется, не понимаю проблему из-за терминологии, либо проблема действительно слишком тривиально решается

Valery
24.10.2017
21:43:29
автор курса по Vue.js на Udemy собирается запустить новый курс - по React.js )) и хотя я не являюсь фанатом React.js - но с нетерпением буду ждать ))

Дмитрий
24.10.2017
21:43:42
Стейт поделён на инстансы для неограниченного числа сессий, одновременно Каждый экшн имеет помимо типа ещё и id создавшей его сессии

Корневой редюсер-сплиттер просто не отправляет экшн в нерелевантные ему стейты

Дмитрий
24.10.2017
21:46:09
В том числе и

from
24.10.2017
21:46:24
И особый экшн этому не противоречит, т.к. решать будет не «поле», а как бы стор

Дмитрий
24.10.2017
21:47:53
Это стало возможным потому что это параллельные инстансы

До этого я так же попытался разделить "поперёк", типа скоупы по смыслу, по группам

Результат немного предсказуем — разумеется, в конце концов одной группе прям пипец как потребовалось послушать экшны из другой

Поэтому и отметил, что деление по смыслу "это у нас часто обновляется, это нет" не работает с решением в лоб

Как заработает — не знаю

from
24.10.2017
21:52:20
:)

Google
from
24.10.2017
21:53:01
Спасибо что поделился

Подумаю ещё

Andrew
24.10.2017
22:19:48
Хотел спросить, интересно откуда фб вообще вытащили flux архитектуру, откуда вообще эта идея взялась с односторонним потоком данных и тд

Дмитрий
24.10.2017
22:21:14
Из боли и попыток понять где мы повернули не туда

Anatoly
24.10.2017
22:21:31
ну всё таки у них не дураки сидят, придумывать кастомные решения в кулуарах разработки - это нормально) особенно когда бабла и разрабов море

Andrew
24.10.2017
22:23:52
я думаю что это все равно где-то раньше использовалось

Дмитрий
24.10.2017
22:24:02
Разумеется

Ещё ходила копипаста про то что redux работает так же как и ui windows в 95

Всё движется по спирали, разница лишь в том что сейчас из происходящего делают другие выводы

Andrew
24.10.2017
22:28:45
В веб просто принесли более менее нормальную архитектуру

Дмитрий
24.10.2017
22:30:27
Нет, это следствие

Причина — стало возможно реализовывать грандиозные клиентские приложения, которые ворочают большим набором данных

Чисто технологически, оптимизировали V8 — стало реальным реализовывать то чего раньше нельзя было и представить, в новую нишу хлынули деньги, появился запрос в полноценной архитектуре

Andrew
24.10.2017
22:34:37
Ну раньше как-то ж писали свои фрейморки на jquery

Дмитрий
24.10.2017
22:35:23
И что, много кто написал свою figma?)

Шутка про дурку для своего времени весьма злободневна

Alex
24.10.2017
22:36:40
# Что выбараете? immutable или seamless-immutable чот задолбал immutable своими .get и .set

Дмитрий
24.10.2017
22:37:35
Так ты же можешь читать поля напрямую

В immutable

# Что выбараете? immutable или seamless-immutable чот задолбал immutable своими .get и .set
seamless как морская свинка — не морская и не свинка

Google
Andrew
24.10.2017
22:38:07
Перестал вообще пользоваться immutable

Дмитрий
24.10.2017
22:38:32
Я наоборот начал

Alex
24.10.2017
22:38:47
напрямую же только в immutable Record

а почему не свинка?

Дмитрий
24.10.2017
22:39:27
А откуда ещё ты собрался напрямую читать? ?? Всё остальное нонсенс же

а почему не свинка?
Потому что ето грызун а не свинья

Alex
24.10.2017
22:40:51
про тебя анекдот есть, сори - Ты знал, что Петров - амбидекстр? - Кто? - Петров.

Дмитрий
24.10.2017
22:41:04
?

seamless-immutable не умеет в structural sharing и поэтому весьма медлительный

Alex
24.10.2017
22:41:57
вот тут бы хотелось напрамую читать это возможно с помощю get set функцию, которые в es6 или чуть раньше появились Immutable.Map({a:1})['a']

воо, эт интересно

Дмитрий
24.10.2017
22:42:43
Не стоит так делать

Alex
24.10.2017
22:42:49
у них [seamless-immutable] в readme расписывается какой он быстрый и что в production режиме он внутри with mutable режиме работает

Дмитрий
24.10.2017
22:44:05
Alex
24.10.2017
22:44:16
1:1

сейчас посмотрю бенчмарки

но функциональность у них беднее

Дмитрий
24.10.2017
22:46:26
Ну да

Alex
24.10.2017
23:03:59
вот тут есть результаты бенчмарков самому лень делать https://github.com/rtfeldman/seamless-immutable/issues/7 везде кроме операции get работает где=то на порядок медленнее хорошо бы поразбираться почему Если представить, что я свой Seamless Immutable делаю то на первый взгляд вот такие потери скорости: function factory (map) { const map_ = {}; // Создать на каждый ключ getter Object.keys(map).forEach(key => Object.defineProperty(map, key, {enumerable: true, get: function () {return this._get(key)} }) ); return map_ }

Дмитрий
24.10.2017
23:07:12
Да там на всё в принципе тратится

Google
Дмитрий
24.10.2017
23:07:49
Я как-то делал либу с тем же подходом что и они, но мне хватило совести не называть её продакшн решением)

То есть когда у тебя даже при клонировании объекта происходит запись туда методов напрямую, даже не через прототип — это провал

Alex
24.10.2017
23:16:47
О, есть же Proxy

var s=[1,2,3]; var arr = new Proxy(s, { get: function(target, name) { return target[name]; }, set: function(target, name){ return 1; } }); arr.push(1); //[1,2,3] arr[1]=100; //[1,2,3] arr[10000]=100000000; //а вот хрен, все еще [1,2,3]

Дмитрий
24.10.2017
23:17:40
Так будет чудовищщно медленно на данный момент, и не портируемо на старые движки

Я сам не портирую, декларируя что кому надо — скомпилят, но совсем радикально вырезать возможность как то не оч

Alex
24.10.2017
23:18:14
типа потому что в браузеры пока экпериментально впилено, и оптимизации в движке не сделали?

Дмитрий
24.10.2017
23:18:41
Ну да. Вообще сделали уже вроде, но за что купил за то и продаю

Alex
24.10.2017
23:18:58
мне повезло, работаю на последний хром попробую погонять бенчмарк

Anton
25.10.2017
02:04:59
Надо просто кидать асерты на все попытки записать что либо, и тогда в проде можно уже оберточки убирать, так как никто никуда ничего уже не пишет.

Alex
25.10.2017
02:14:59
это не удобно set должен возврящать новую структуру с измененем

С Proxy просто выходит var accesor = new Proxy(Object.prototype, { get(target, property, receiver) { return receiver.get(property) } }); Object.setPrototypeOf(Immutable.Iterable.prototype, accesor) Immutable.Map({a:1}).set('a', 2).a // 2 А вот и issue есть https://github.com/facebook/immutable-js/issues/440

Игорь
25.10.2017
05:07:36
Ребят, вопрос по анимациям, что лучше юзать - react transition group, react motion или animated?

Denis
25.10.2017
05:10:31
Всем привет, подскажите как подключить html2canvas к react? При импорте получаю ошибку компиляции: ./src/libs/html2canvas.min.js Line 7: 'define' is not defined no-undef Line 7: 'define' is not defined no-undef Line 7: Unexpected use of 'self' no-restricted-globals Line 7: Unexpected use of 'self' no-restricted-globals Line 7: Unexpected use of 'self' no-restricted-globals Line 7: Unexpected use of 'self' no-restricted-globals Search for the keywords to learn more about each error.

Denis
25.10.2017
06:31:23
добавь просто путь к файлу в .eslintignore
Я создавал приложение через create-react-app, в корне добавил .eslintignore и в нем указал путь к директории с файлов, но все равно ошибка при компиляции. Или я что то не так делаю?

Ilya
25.10.2017
06:31:50
погоди, ты не через import делаешь?

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