Pull to refresh
4
5.1
Василий Лелицак@vasille

User

Send message

Сейчас идёт ребрэндинг, изначально проект не имел по сути название, пару дней назад только что наконец-то придумал. Но код и документацию можно посмотреть тут: https://github.com/vasille-js/vasille-js

Я не говорил что так хуже, а то что это всё надо выучить, особенно пугает ручное обновление компонента. Ещё мне непонятно будет ли Typescript это проверять, IDE предлагать авто-дополнение этих названий и сколько всего вариантов там в списке будут.

С большим удовольствием отвечаю, я сам разработчик C++ Qt (middle) по этому отлично понимаю ваше недоразумение.
Больше всего писал на QML, это всё по сути заменяет такие компоненты в нём как Loader и Repeater.
Когда используешь более классический способ у тебя есть доступ к указателя на каждый Layout и в нём можно что-то добавить и удалить без проблем, это работает на основе архитектуры MVC. Да и там всё равно есть различные ListView, TableView и подобные.
В моём фреймворке используется архитектура MVVM, по этому любые изменения на экраны идут через так называемые биндинги, т.е. меняешь данные и интерфейс сам обновляется, в таком случае программист не имеет необходимость в прямой доступ к составляющих интерфейса (а сам доступ он есть).

Это такой тренд, почти на всех сайтах фреймворках находится этот пример, он простой и даёт первичное впечатление о том как строится компоненты. А сам счётчик можешь найти на маркетплейсах когда нажимаешь кнопку "Добавить в корзину".

Вот стандарт: https://dom.spec.whatwg.org/#eventtarget в нём чётка указано что обработчик события устанавливается тремя параметрами: тип события, обработчик и опции. Вот часть стандарта https://html.spec.whatwg.org/multipage/webappapis.html#event-handlers-on-elements,-document-objects,-and-window-objects которая описыввает какие атрибуты у элемента под какие типы события, соответственно нам остаётся указать 1 или 2 параметра. примеры:

<button onclick={() => $count++}>Clicked {$count} times</button>
<button onclick={[() => $count++, true]}>Clicked {$count} times</button>
<button onclick={[() => $count++, {capture: true, once: true}]}>Clicked {$count} times</button>

И вот такое как раз и соответствует стандартам, а вот эти хитроумные свойства надо выучить. Понимаешь разницу в подходе?

По этому коду тут вопросов очень много:

  • {count = 0} почему состояние это поле объекта в параметре функций?

  • click_e_update что означает e_update? Как добавить обработчик для touchstart например?

  • Clicked {() => count} times - для чего тут функция если это шаблон и по идею встроим значение?

Тот же пример у нас:

const ClickCounter = component(() => {
  let $count = 0;
  <button onclick={() => $count++}>Clicked {$count} times</button>;
});

Уже 6 лет не писал на плясы, но помню как сложно было настроить CMake каждый раз. Радует такая забота о пользователях))

На самом деле это я вечерами чтобы расслабиться после работы написал.

Спасибо! Было интересно. Теперь я рад что с таким не сталкивался на работе.

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

Интересное наблюдение, я лично думал что он сильно похож на Svelte 4.

Вы не знаете почему Windows отказалась от WSL1? Чем контейнеры лучше?

Information

Rating
1,015-th
Registered
Activity

Specialization

Десктоп разработчик, Фулстек разработчик
Ведущий
JavaScript
TypeScript
React Native
Node.js