Pull to refresh
4
0
Василий Лелицак@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
Does not participate
Registered
Activity

Specialization

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