@react_js

Страница 434 из 5115
Николай
02.09.2016
11:08:13
Коллеги, помогите плз. Сорьки, что, возможно, не в подходящем чате. Нужен wysiwyg редактор. Сейчас использовали https://imperavi.com/redactor/ Но может все таки есть еще редакторы. В идеале, чтоб сами же разработчики разрабатывали биндинги на популярные фреймверки.

Dmitry
02.09.2016
11:37:45
Ребята, есть вопрос: есть компонент-маска, его задача: возможность зумить первоначальное изображение, ворочать его, а также ходить по изображению(сам компонент размером 100х100px, а по изображению может большому ходить). Суть этого компонента отдать наверх кропнутое изображение. В данный момент я просто делаю это через ref(то есть выше компоненты узнают о состоянии кропнутости изображения, только через Ref), но это решение мне не нравится, как можно сохранить состояние этого компонента? (естественно нельзя содержать стэйт в этом компоненте, ибо после каждого движения по изоборажению произойдет перерисовка, мне это не нужно. Redux тут тоже никак не поможет, после каждого движения по изображению будет посылаться action, и это конкретненько так все затормозит. Как это сделать лучше? какие будут идеи?

Ilya
02.09.2016
11:38:46
Спускать коллбек с того компонента, куда надо ставить?

Dmitry
02.09.2016
11:44:31
вариант

Google
Dmitry
02.09.2016
11:44:36
но может есть что-то элегантное?

потому что коллбек - нужно вызывать на каждый чих и это тормозит компонент

Алексей
02.09.2016
11:47:58
потому что коллбек - нужно вызывать на каждый чих и это тормозит компонент
если ты не хочешь колбэки, редукс, то другого способа, как реф вроде бы и нет, что бы общение между компонентами осуществить

чем тебе реф не нравится?

У тебя есть компонент, со внутренним стейтом, стейт этот может менять по сто раз за клик, но родительским компонентам это ведь не особо важно? Им нужно значение по запросу, так ведь?

Dmitry
02.09.2016
11:49:22
да

Алексей
02.09.2016
11:49:25
Если так, то ref отличный способ, сделай функцию getState/getCropImage и используй в родительском компоненте, когда это нужно

да
элегантней способа и не придумать тут

Dmitry
02.09.2016
11:50:22
ок, спс

Bogdan
02.09.2016
11:53:38
как можно организовать периодический вызов функции так, чтобы функция вызывалась после окончания работы самой себя

Vitaly
02.09.2016
11:55:50
const fn = () => setTimeout(fn, 300)

ну или как-то так)

Bogdan
02.09.2016
11:58:28
Короче, я шлю запрос на сервер. Сервер может ответить спустя любой промежуток времени. Как только ответ пришел, мне нужно снова отправить запрос

Google
Vitaly
02.09.2016
11:59:46
ну объяви именованную функцию, после саксеса вызови ее опять, в чем проблема?)

Bogdan
02.09.2016
12:01:17
то есть саму себя вызвть?

получится рекурсия

а надо вызывать в том же контексте

Vitaly
02.09.2016
12:03:57
да, а что тебя в этом смущает? возможно только придется объявлять через function, ибо область видимости, все дела... юзай call

Bogdan
02.09.2016
12:04:30
смущает то, что будет туча влженных вызовов

Алексей
02.09.2016
12:05:34
смущает то, что будет туча влженных вызовов
ты хочешь вызывать функцию, внутри самой себя, это уже по определению тянет на рекурсию)

Bogdan
02.09.2016
12:05:48
ну вот нужно как-то обойти

Vladimir
02.09.2016
12:06:21
зачем?

Алексей
02.09.2016
12:07:05
ну вот нужно как-то обойти
ты зря думаешь, что если функция а вызывается в функции б, то а имеет контекст функции б, контекст сохраняется при объявлении же

Bogdan
02.09.2016
12:08:14
зачем?
таких вызовов может быть несколько тысяч и они все будух хрнаиться. или это не много?

Алексей
02.09.2016
12:09:01
таких вызовов может быть несколько тысяч и они все будух хрнаиться. или это не много?
ты о чем то левом паришься. В любом случае у тебя будет 1000 вызов, какая разница на их "вложенность", это же просто вызов функции

Vitaly
02.09.2016
12:09:17
ой, а давайте запилим через new Function и стрингу туда запилим, хоть интересней будет)

Bogdan
02.09.2016
12:11:34
1000 вложенных вызовов это 1000 контекстов в стеке

и стек будет только расти

Алексей
02.09.2016
12:12:20
1000 вложенных вызовов это 1000 контекстов в стеке
что ты понимаешь под контекстом?

Bogdan
02.09.2016
12:13:27
ну как минимум адрес возврата)

я не знаю, что там еще жс кладет туда

Алексей
02.09.2016
12:14:33
ну как минимум адрес возврата)
а при 1000 невложенных вызовах, контекст не будет расти? Один раз сохраниться и потом переиспользоваться что ли будет?

Bogdan
02.09.2016
12:15:43
после того как функция закончила работу, контекст выталкивается из стека

Google
Bogdan
02.09.2016
12:16:05
а так получается, что все функции работают

Denis
02.09.2016
12:29:20
setTimeout обрывает стек стек будет глубиной 1 всегда

Bogdan
02.09.2016
12:36:49
setTimeout вызывает функцию периодически, а мне нуужно по событию

Denis
02.09.2016
12:44:09
любой сетевой вызов тоже обрывает стек

Bogdan
02.09.2016
12:47:37
каким образом

он прост овыполняется асинхронно

G.K.E
02.09.2016
13:02:45
а в чем задача то?

Bogdan
02.09.2016
13:03:44
Короче, я шлю запрос на сервер. Сервер может ответить спустя любой промежуток времени. Как только ответ пришел, мне нужно снова отправить запрос

Denis
02.09.2016
13:03:45
асинхронное выполнение = обрыв стека

Artem
02.09.2016
13:03:56
Это просто не будет рекурсия

Это "пожалуйста, жс, запусти вот эту функцию по таймеру"

Роман
02.09.2016
13:04:23
Мб что-то типа keep-alive запросов?

Artem
02.09.2016
13:04:26
К моменту запуска коллер уже завершится

G.K.E
02.09.2016
13:05:28
а почему в .then() нельзя его послать повторно?

Роман
02.09.2016
13:06:46
а почему в .then() нельзя его послать повторно?
Я тоже думаю, что можно Писал жеж о рекурсивных промисах

G.K.E
02.09.2016
13:07:17
так это даже не совсем рекурсия..

как бы да, но вроде нет))

Роман
02.09.2016
13:09:36
Да)

Ну и на коллбеках можно

Google
Bogdan
02.09.2016
13:10:11
делаем в then его повторно

Bogdan
02.09.2016
13:10:16
а then?

G.K.E
02.09.2016
13:11:06
че то я не догоняю.. не похоже это на рекурсию..

Bogdan
02.09.2016
13:11:23
в then нужно именно вызывать функцию, которая делает запрос иначе нужно делать бесконечное количество then

Ilya
02.09.2016
13:11:39
Если промисом, делаем функцию, которая дёргает промис, внутри функции вызываем ту-же функцию, не?

function interval() { SomethingWithPromise.then(interval) };?

Bogdan
02.09.2016
13:12:04
да это понятно

Admin
ERROR: S client not available

G.K.E
02.09.2016
13:13:55
ну да)

Bogdan
02.09.2016
13:14:41
ну вы согласны, что будет рекурсия?

Ярослав
02.09.2016
13:15:15
если не будете её делать, то не будет

G.K.E
02.09.2016
13:16:16
а данные в 1 ом и 2 ом запросе одни и теже?

просто повтор?

мож стоит с сервера тебе присылать спец флаг, чтобы ты понимал а нужен ли повтор?

Bogdan
02.09.2016
13:18:06
похоже я неправильно понимал работу колбэков

G.K.E
02.09.2016
13:18:18
и сколько повтором может быть ?

Bogdan
02.09.2016
13:18:43
это long polling

запрс висит на сервере пока не появятся данные

Google
Bogdan
02.09.2016
13:19:38
чтоб не бомбить запросами

G.K.E
02.09.2016
13:21:55
мож сокеты стоит?

Bogdan
02.09.2016
13:22:14
да, но сервер уже так работает

Denis
02.09.2016
13:27:28
что так категорично, сокеты тоже не сказка https://deepstream.io/blog/load-balancing-websocket-connections/

Andrey
02.09.2016
13:37:25
Есть какая-то годная дока по реакту в пдф?

https://habrahabr.ru/post/279249/ Курсы для начинающих, но не дока

Роман
02.09.2016
13:43:25
Есть какая-то годная дока по реакту в пдф?
Есть курсы годные, но это такое

Andrey
02.09.2016
13:43:52
Скинь, не откажусь)

Dmitry
02.09.2016
14:01:52
Роман
02.09.2016
14:07:22
https://www.udemy.com/react-redux/

Ilya
02.09.2016
14:12:13
Господа, если кто не знал, то у нас есть еще чаты по Ember.js и Vue.js. https://telegram.me/emberjs_ru https://telegram.me/vuejs_ru

Vitaliy
02.09.2016
14:39:38
https://www.udemy.com/react-redux/
на egghead есть бесплатно от Автора редакса

Dmitry
02.09.2016
14:55:40
даже уже 2 есть, Дэн Абрамов постарался)

G.K.E
02.09.2016
14:58:03
чего 2?

https://egghead.io/courses

это?

Dmitry
02.09.2016
15:01:16
2 курса

G.K.E
02.09.2016
15:03:23
то что я выше скинул, ты о них?

Vladimir
02.09.2016
15:05:19
о них

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