This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Вопрос Как правильно передать данные из клиента на cef react js?

Gerych

Начинающий специалист
Автор темы
24 Ноя 2020
79
9
56
Всем привет, столкнулся с проблемой передачи данных на react cef.
Изначально пробивал через browser.execute но функция, в которую передаю переменную, не находилась.
Полез в интернет за ответом, нашел только это: https://rage.mp/forums/topic/2571-guide-creating-ui-with-react/ - там ничего полезного не нашел.
Если кто-то может дать совет или еще как-то помочь, буду рад)
 

Inoi

/dev/null
VIP
15 Окт 2020
2,372
1,413
208
34
функция, в которую передаю переменную, не находилась.
чево
покажи

я не верстальщик, но что я, что ребята у меня - подключали довольно дохуя интерфейсов, что нам собирали - и ну, реакт отлично работает с execute, точно так же как вуе
в плане взаимодействия клиентка -> цеф там вообще не ощущается разницы
никаких проблем нет вызывать функции и передавать данные


может нужно не забыть в реакт-приложении подмаунтить функции, к которым ты обращаешься извне?
 

aspidemon

Активный участник
26 Сен 2022
116
42
40
вместо window можно использовать global, чтобы не засовывать в объект окна свои данные (возможно могут быть баги из-за этого), просто делаешь global.[name] и все
 

mippoosedev

Гуру
2 Мар 2021
294
139
100
Не используйте execute, есть евенты, их и используйте. Прекратите кринжевать!!!!

Ну а это вообще кринж кншн. Ещё и под всё разные браузеры....
 
Реакции: dooj

vpn

Начинающий специалист
29 Май 2022
129
64
65
Чем тебе не нравится функция execute?
Если объективно подумать, то ивенты они итак из под капота используют Execute.

Только к ивентам еще и подключается другая часть Rage API которая обрабатывает все твои запросы локально.
Это значит, то-что ты как минимум задействуешь больше функций чем Default execute.
Тем самым, при частых вызовах browser.call, ты нагружаешь систему в некоторое кол-во раз сильнее, тем самым теряешь некоторую часть оптимизации. (Например Render или маленький интервал спидометра для HUD ( Один из самых распространенных вариантов ) ).

Для автоматизации execute можно перейти на EcmaScript, импортировать переменную(Функция), где ты указываешь меню и аргументы. Дальше все за тебя сделает твой код.
Так-как мы не знаем каким образом устроено RageAPI, спорить об этом можно бесконечно.

Ну а миллион браузеров, да, тема забавная.
 
Реакции: Inoi

mippoosedev

Гуру
2 Мар 2021
294
139
100
1) Поддерживать код на экзекьютах - залупа. Один неправильный символ - всё улетает далеко и надолго
2) Евенты вещь удобная, модная, современное
3) Париться о такой мелочи, как разница во времени между экзекьютом и браузер коллом - очень и очень глупо) Это настолько незначительно, что ты даже не заметишь.
4) Даже если ты не согласен с ПУНКТ №3, то сути это не меняет. Поддерживать код на экзекьютах - очень сложно
 
Реакции: dooj, FireFeed и aspidemon

Inoi

/dev/null
VIP
15 Окт 2020
2,372
1,413
208
34
не оч понятно зачем вы до меня доебались канешна, я просто человеку на вопрос ответил вроде

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

в евентах в общем-то тоже, но с "прекратите использовать!" могу только поорать конечно
ну
нет


десяток браузеров это конечно вынужденно грустная история, да
местами она неразрывно связана с тысячей верстальщиков, которую я поменял за полтора года
когда-нибудь от неё избавимся
 
Последнее редактирование:
Реакции: vpn

vpn

Начинающий специалист
29 Май 2022
129
64
65
Ну я не удивлюсь, если вы до сих пор в ручную используете JSON.(stringify | parse) для (передачи | принятия) аргументов.
Предварительно, когда ты используешь browser.call, тебе придется писать это, раз за разом. (Сеньором тебе не быть)
Или же лучше импортнуть самописную функцию которая сама раскидает все как надо? Вопрос риторический..

Если не получается составить собственный eventEmitter (Который мало того-что будет создавать ивенты в cef, и вызывать ивенты с клиента, так еще и парсить нужные данные), то это уже говорит о немного неправильном ведении кода.
Для новичков или криворуких идея бомба, модная и современная, это да.

Поддерживать код на Execute не сложно, если используешь EcmaScript &&/|| TS &&/|| логически понимаешь структуру как это должно выглядеть.
(Если что, в Ecma и TS автоматические импорты. Нужно лишь написать переменную которую хочешь использовать и нажать ENTER)

Меня не парит "разница во времени между экзекьютом и браузер коллом".. Меня парит что ты выставляешь это за кринж код, предварительно не выстроив для себя локальный API самостоятельно, а так-же предлагаешь отказаться от этого без каких либо причин (ну просто потому-что кринж, а еще потому-что "Не используйте execute, есть евенты, их и используйте")
 
Последнее редактирование:

mippoosedev

Гуру
2 Мар 2021
294
139
100
К счастью, у меня кодгенератор, который решает эти проблемы. И да, он работает на евентах. Повторюсь - это удобно, модно, идеально. Хочешь давать советы "сеньорам" - тебе явно не на этот форум) Не советуй новичкам экзекьюты, иначе они умрут от постоянных проблем и ошибок
 

aspidemon

Активный участник
26 Сен 2022
116
42
40
Ивент эммитер теперь не нужен - используй мою либу ТЫК