LINUX.ORG.RU
Ответ на: комментарий от crutch_master

Но макаки, у них же руки не начнут расти из плеч. Они так и будут перестраивать DOM в двойном цикле вызывая при этом всё на свете

Макаки не умеют в ванилу. Они выбирают самый востребованный фреймворк. Сейчас это реакт. Там с обновлением DOM все хорошо. Напишут аналог на гошечке и норм. На русте уже что-то есть. JXS на макросах

Deleted
()
Ответ на: комментарий от Deleted

js в реакте есть? Значит дёргать document.getElementsByClassName можно. DOM в wasm завезут? Значит можно делать тоже самое. Остальное дело техники.

crutch_master ★★★★★
()
Ответ на: комментарий от bread

https://github.com/drminnaar/react-clock-basic/blob/master/src/components/Clo...
Ну и говнище же этот ваш реакт.

чтобы верстальщики ничего такого не дергали.

Где? Версальщики всё так же пишут код и теги руками, а значит дёргать будут что угодно.

crutch_master ★★★★★
()
Ответ на: комментарий от crutch_master

Честно говоря, я про реакт и прочую хипстерию только на лоре слышу. Но раз это так популярно, значит что-то в этом есть.

bread
()
Ответ на: комментарий от crutch_master

Версальщики всё так же пишут код и теги руками

Само же не напишется. Но фреймворки по идее защищают DOM от лапок и лапки от DOM. Ну так я себе представляю, иначе хз зачем оно все нужно.

bread
()
Ответ на: комментарий от crutch_master

Кадр. Нашел какую-то нонейм поделку трехлетней давности. В которой ни хуков ни внешнего состояния. Впрочем, что еще ожидать от того, который «не знаю реакт»

Deleted
()
Ответ на: комментарий от crutch_master

js в реакте есть? Значит дёргать document.getElementsByClassName можно. DOM в wasm завезут? Значит можно делать тоже самое. Остальное дело техники

И что этот бред значит? Нужно запилить отдельный язык, который не умеет в DOM? Ты не сделаешь нормальный клиент-сайд компонент не запачкавшись в императиве. Если ты описал клиент-сайд декларативно, то, возможно, это не клиент-сайд, а часть статической разметки, которая должна была предгенериться на этапе разработки

Что до макак, то это макакам свойственно не разбираясь в теме кидаться какахами

Deleted
()
Последнее исправление: Deleted (всего исправлений: 2)
Ответ на: комментарий от crutch_master

Ну и на ноль делить можно чо. Другое дело что хорошие практики будут проходить ревью, а getElementsByClassName нещадно выкашиваться еще lintером еще на этапе написания этого шлака в IDE

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 1)
Ответ на: комментарий от vertexua

getElementsByClassName нещадно выкашиваться

В реакте обычно имя класса генериться при компиляции css-in-js конструкций, и селекторами даже макаки не делают. В vue оно всё автоматом. А вот в реальных задачах в реальном мире и не такое приходится использовать

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Deleted

Нужно запилить отдельный язык, который не умеет в DOM? Ты не сделаешь нормальный клиент-сайд компонент не запачкавшись в императиве.

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

crutch_master ★★★★★
()
Ответ на: комментарий от vertexua

ругое дело что хорошие практики будут проходить ревью, а getElementsByClassName нещадно выкашиваться

DOM в цикле это только один, самый вопиющий пример. Сделать что-то не так есть великое множество способов и без этого.

crutch_master ★★★★★
()
Ответ на: комментарий от vertexua

Другое дело что хорошие практики будут проходить ревью, а getElementsByClassName нещадно выкашиваться еще lintером еще на этапе написания этого шлака в IDE

Смотрим соседний тред в этом разделе (не имею ввиду, что автор плохой кодер). Да, так вебчик в основном и делается, а не хорошими практиками на IDE через ревью. И делается там какая угодно дичь.

crutch_master ★★★★★
()
Ответ на: комментарий от crutch_master

Ты сам-то на дельфи писал? Шаг влево/вправо от «готового компонента» и начинаются мытарства. Узнаешь много нового про иерархию VCL-классов, про 3 интерфейса компонента и т.д. На веб-фреймворках составной компонент пишется на порядок проще и понятнее

Deleted
()
Ответ на: комментарий от crutch_master

Начнем с того, что обособленные часики на реакт это уже уже странный признак. Если твоя програмка работает со временем, то время и тикалка будут где-то в модели. А часики это dumb component:

function DumbClock({min, sec}) {
  return <span>{min}:{sec}</span>
}

Если надо связать со стором, то:

function Clock() {
  const { currentMin, currentSec } = useStoreon('currentMin', 'currentSec');
  return <DumbClock min={currentMin} sec={currentSec} />
}

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Deleted

Ты сам-то на дельфи писал?

Вопрос не про «писал» а про «общался».

Шаг влево/вправо от «готового компонента» и начинаются мытарства.

Так это не нужно. Нужно программирование мышкой, интуитивно понятные, документированные, доступные и переносимые компонетны, а то так до самой пенсии их будут переписывать под очередной реакт каждый раз.

crutch_master ★★★★★
()
Ответ на: комментарий от Deleted

Что это принципиально меняет? Вот вверху startTime() в котором setInterval. Как это относится к изначальному тезису, что говнодел наделает говна везде? Не давай ему работать с памятью он не сделает повреждение. Не давай ему динамику не обделается с типами. Не давай ему дёргать ресурсоёмкие операции, он не налажает с ними. Всё просто.

crutch_master ★★★★★
()
Ответ на: комментарий от Deleted

Вижу, что общался, а не писал. Иначе бы не говорил глупости про «програмирование мышкой»

Средний дельфист вообще не в курсе как писать компоненты. Ему надо двигать компоненты по формочке и выставлять параметры в ide, а не то, что ты тут написал про вебчик. Тут пацаны до сих пор уверены, что путного на вебчике ничего писать нельзя, потому что там грида нету как в дельфи. Так что не рассказывай.

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 1)
Ответ на: комментарий от Deleted

Ну так ты имеешь не facepalm с кривыми компонентами, вебпаками на 10мб и рассказы про то, что жс тормозит, жс плохой язык и т.п. Он и будет таким, если из него сделали проходной двор и никакой wasm этого не починит.

crutch_master ★★★★★
()
Ответ на: комментарий от Deleted

Они выбирают самый востребованный фреймворк. Сейчас это реакт.

Там всех хомячком поимела фп-пропаганда и они жрут говно. Если в нативной гуйне уже тысячи лет как существует адекватная реактивность, то здесь адепты до сих пор живут в палеолите. Хотя сейчас что-то начинает меняться, но это значит лишь одно - веб-макаки настолько нулёвые, что поиметь их может любой клоун. Поэтому кукарекать о каком-то выборе их нет смысла - его нет.

Там с обновлением DOM все хорошо.

Полная и нелепая херня. Меньше жри пропаганды.

На русте уже что-то есть. JXS на макросах

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

anonymous
()
Ответ на: комментарий от Deleted

А часики это dumb component:

Тебя поимела пропаганда.

со стором,

А, дак ты совсем с помойки пишешь. Не волнуйся - мнения своего ты не имеешь по умолчанию. Зачем ты что-то пишешь, если ты рядовой бот-ретранслятор пропаганды? Я могу посмотреть первоисточник - зачем мне ты?

anonymous
()
Ответ на: комментарий от anonymous

Если в нативной гуйне уже тысячи лет как существует адекватная реактивность

Это в какой например?

то здесь адепты до сих пор живут в палеолите

ИМХО, «правильная» реактивность гуев в вебе это mobx-react. «Неправильная» это vue/svelte. Правильная без кавычек должна быть наверное встроена в движок js. Но что есть то есть

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от anonymous

Тебя поимела пропаганда

Мастер артументации в itt треде

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

Зачем ты вылез? Я тебе ничего не говорил. Иди смотри первоисточник

Deleted
()
Ответ на: комментарий от crutch_master

Я как-то пытался в теме про руст выяснить, что же за великую истину он хочет донести за ширмой грубости и оскорблений. Нет там никакой истины. Только грубость и оскорбления :)

Deleted
()
Ответ на: комментарий от crutch_master

Ну так ты имеешь не facepalm с кривыми компонентами, вебпаками на 10мб и рассказы про то, что жс тормозит, жс плохой язык

Не жс плохой язык, а скриптуха не может. Замени жс на любую скриптуху - ничего не изменится.

Эти проблемы решаются на пути ухода от скриптухи. Очевидно, что макаки будут ваять говно и жрать пропаганду. Это смысл их существования.

anonymous
()
Ответ на: комментарий от Deleted

Это в какой например?

Везде. qt/gtk - тысячи их.

ИМХО

У тебя его нет, ты жертва пропаганды - это выше зафиксировано.

«правильная» реактивность гуев в вебе это mobx-react.

Молодец, только вот никакой реакт здесь ненужен. Реакт решает проблему отсутствия реактивности и проблема фп-макак.

«Неправильная» это vue/svelte.

Это вообще говно. Но ты молодец, хотя тут спорно. Я не знаю что именно сподвигло выбрать реакт, но если это осмысленная неприязнь к мусорному тексту и шаблонам, то ты молодец да.

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

Правильная без кавычек должна быть наверное встроена в движок js. Но что есть то есть

Неправильно. Для правильной жс не годится, как и любая другая скриптуха.

anonymous
()
Ответ на: комментарий от Deleted

Мастер артументации в itt треде

Ты можешь попытаться со мною поспорить и убежишь плакаться мамке. Кстати, заметим как клоун всё понял и решил попросту заигнорить тему не ответив на тему реакта.

Зачем ты вылез? Я тебе ничего не говорил. Иди смотри первоисточник

Говорил. Ты ретранслировал методичку в эфир, жертва пропаганда. А трансляция в эфир - это трансляция всем, в том числе и мне.

anonymous
()
Ответ на: комментарий от Deleted

Побежал показывать и доказывать, клоун.

anonymous
()
Ответ на: комментарий от Deleted

Не грубил бы в ответ может что и выяснил. Мне, например, очень интересно, как выглядел бы Царский вебчик и фротнэнд. А вы все лезете, начинаете провоцировать и Царя банят.

crutch_master ★★★★★
()
Ответ на: комментарий от anonymous

Реакт решает проблему отсутствия реактивности

Ну, не совсем. Ручками обновлять стейт так, чтобы все новые объекты имели новые ссылки. Не здорово. Тут реактивность и нужна. Но большинство кажется выбирают решения попроще, навроде immer

Deleted
()
Ответ на: комментарий от anonymous

осмысленная неприязнь к мусорному тексту и шаблонам

Вот это хорошо сказал. Поддерживаю )

Deleted
()
Ответ на: комментарий от crutch_master

У него священная война со скриптухами. А мог бы вместо стен помоев написать три-пять предложений, рассказывая как сделать все идеально

vertexua ★★★★★
()
Ответ на: комментарий от Deleted

Реактивные gtk с qt. Повеселил)

Прокукарекался и опять скатился в клоунаду.

А что вместо? Custom elements?

Ничего ненужно. Custom elements на уровне натива почти что бесполезно т.к. никто, очевидно, не будет описывать элементы на уровне этой дристни. Биндить свои элементы в хтмл так же никому ненужно, кроме макак.

На уровне реакта у тебя существует правильная концепция - выкидывание dom и уже далее отображения свои внутренних структур на dom. Но, всё это говно.

html как механизм описания полное говно. По-сути ты его(jsx) используешь как подпорку ввиду отсутствия у тебя в языке адекватной выразительности. На уровне самого jsx ты уже давно ушел от хтмл и не работаешь на уровне базовых примитивов. Семантически сам хтмл тебе уже давно ненужен.

То, что ты слышал от Custom elements - это попытка вернуть все твои компоненты/элементы на уровень дом и на уровень html. Очевидно, что это полная херня.

По поводу обновления данных. Ты ведь уже давно должен был знать, что реакт доказал свою полную несостоятельность как модели. Как изначально это должно было быть. Каждый раз при обновлении вызывается ререндер всего dom"а(условно) и далее обновляется что нужно. Эта модель обделалась сразу и срочно понадобились костыли, которые триггерят ререндер как можно ближе к обновляемой ноде, а не ререндер корня.

Но это целиком и полностью ненужно. Если элемент/компонент точно знает от каких данных он зависит - он просто слит за ними и обновляется.

Если ты знаешь про mobx-react, то ты должен знать, что сам компонент(обсервер) уже получает все зависимости по данным и «следит» за ними. Таким образом мусорный механизм обновления реакта не используется.

Так же, если все твои элементы(в том числе и базовые) будут такими же наблюдателями, то реакт можно выпилить. Если попроще.

Сейчас с mobx-react механизм обновления реакта обеспечивает только обновления от observer и ниже. На самом деле, если ты организуешь всё это адекватно, то там напрямую генерировать dom. И даже если ты будешь обновлять пару лишних нод - это будет куда меньше, нежели оверхед на сам реакт.

Если же ты опишешь это нормально изначально, то никаких лишних нод у тебя не будет.

Единственное преимущество реакт-модели - это динамическая структура гуйни. Что такое статическая структура - можешь посмотреть в svelte.

Если проще, то в статическом описании структуры - ты не можешь от условий добавлять некие элементы и прочее. На самом деле можешь, но это полностью другая парадигма и это крайне сложно реализовать. Правда это не особо нужно. Во всякой другой гуйне без этого спокойно живут, но статическая модель куда более совершена и может выражать динамические явления.

anonymous
()
Ответ на: комментарий от vertexua

Заменить сайты с жс-лапшой игрульками клиентами на нескриптухе. Гипертекстовый протокол вернуть гипертексту.

//нецарь

anonymous
()
Ответ на: комментарий от Deleted

Ну, не совсем. Ручками обновлять стейт так, чтобы все новые объекты имели новые ссылки. Не здорово. Тут реактивность и нужна. Но большинство кажется выбирают решения попроще, навроде immer

Всё это ничего ненужно в том мусорном виде, в котором это делает реакт. Никто тебе не предлагает руками создавать ноды и биндить, но реакт не так работает.

anonymous
()
Ответ на: комментарий от anonymous

Всё правильно сказал. Осталось запилить удобный mobx-noreact на описанных принципах )

По-сути ты его(jsx) используешь как подпорку ввиду отсутствия у тебя в языке адекватной выразительности

Гуй это дерево. JSX вполне выразителен для дерева. Как дерево должно выглядеть на язке с адекватной выразительностью?

Deleted
()
Ответ на: комментарий от anonymous

Всё это ничего ненужно в том мусорном виде, в котором это делает реакт

Ну да спецефический костыль. Но надо же на чем-то писать. Своих «фреймфорков» я уже парочку делал. Больше не хочется)

Deleted
()
Ответ на: комментарий от Deleted

Дык, классический MVC паттерн именно что реактивный, это все придумано при царе горохе еще. Вебельщики и правда живут в изоляции как какие-нибудь индейцы в Андах, все приходится переизобретать.

bread
()
Ответ на: комментарий от Deleted

Гуй это дерево.

Не обязательно.

JSX вполне выразителен для дерева.

Даже близко нет.

Как дерево должно выглядеть на язке с адекватной выразительностью?

Слишком сложно. Проблема в общей выразительности. Для как как дерево выглядит лучше jsx без jsx посмотри в каким-нибудь флаттере. Там, правда, выразительность такая себе и язык далёк от совершенства, но база есть. К тому же это попросту куда более функциональная и мощная концепция.

Общая проблема - проблема интеграции. Это говно очень плохо интегрируется в язык т.к. является для него инородным. Да, это куда лучше мусорных шаблонов на тексте, но далеко от идеала.

div(a: value, b: value, c: value) - куда лучше нежели: <div a={govno}, b={govno}, c={govno}/>. Оно не имеет проблем со скобочками, Оно не имеет неоднородность как el = <div/>; {el} и прочая херня.

Условно-пистонятское [if(expr) div()] куда лучше нежели треш со скобочками.

Всё это даже в самом базовом виде можно реализовать(и пытаются реализовывать) куда лучше.

Но это не самое важное. Самая важная проблема - это мусорная семантичность данного подхода. Это говно никак адекватное не типизируется, это говно никак адекватно не анализируется. Ты никак не можешь работать с этим говном на уровне языка. Ты не можешь обходить эти деревья, не можешь даже реализовать наследования, не можешь биндить всякую мета-информацию(ту же стилизацию).

Время жизни всего это говна непредсказуема, нужно постоянно долбить и обходить дерево на каждое обновление, либо пытаться оптимизировать и обходить поддеревья, но всё это так же говно.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.