Pull to refresh

Comments 32

UFO just landed and posted this here

Тюю.
$mol - вот, что по-настоящему сносит крышу и переворачивает сознание аж на 720 град!

Сколько берёте за техподдержку?

Я же не многомиллионная корпорация. Я могу себе позволить и бесплатную поддержку.

Тогда вдвойне странно, что с таким тарифом github всё ещё не перешёл на $mol.

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

Это не фреймворк, а золотая жила просто.

Есть технология, даже мол не нужен. шлем дынные с сервера на любом языке - получаем GUI автоматом + оповещения что пользователь делает с данными. https://github.com/Claus1/unigui Можно вообще всех фронтеров уволить, но по сути, никому (кроме 2-5) не нужна. слишком непонятная..

Желаю вам всю жизнь работать с такими интерфейсами через медленное / нестабильное / отсутствующее соединение к серверу под ddos-ом, на который выкатили критический баг.

UFO just landed and posted this here

Лучше код в 2 раза больше и в 5 раз медленнее, чем кровоточащие глаза и каша-малаша под названием $mol.

Вот, кстати, свежая статья на тему крови из глаз:

Согласен, после прочтения, глаза начали кровоточить, особенно после $mol_button_major.

По сравнению с элегантным Vue, Ваши скоростные $mol магии - просто визуальный кошмар какой то. Неужели нельзя было проработать эти моменты?

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

Вы первый, кто разгадал этот вираж ?

Когда я вижу - 55 - 36) / 27, я хватаюсь за пистолет

О да! У меня их два и граната) Это просто для наглядности. На месте этих странных цифирь должны быть функции определяющие размеры элементов. Я их убрал для разгрузки кода. Он и так длинный получился для статьи.

Понимаете, раз 5 пытался написать кратко, почему такой код считается непригодным в 2022-м, но потом забил на это дело, слишком всё плохо. Константы это так уже..

Привет. Посмотрел, пощупал. В том виде, в каком это сейчас, не взлетит твой пепелац, какой бы он ни был быстрый верткий или легкий.

Итоговый результат никак не стилизуется под клиента персональным css. В итоге все сидят на одном стиле. Минус 50% клиентов, которые хотят менять стили каждый час по-своему, генеря свои css.

Конечный код страницы не проходит валидацию HTML. Минус клиенты, у кого это стоит в ТЗ. А код не пройдет валидацию, например, если есть одинаковые ID элементов.

Задание стилей: что-то пикселями и css параметрами в "raw text" а что-то функциями типа rem(что то там). Ээ а можно поконкретнее?

Непонятно кому я задаю стиль - где-то простановка тэгу html где-то тэгу с определенным id. Но не очевидно после получения кода страницы HTML - какой сущности сейчас проставляется стиль.

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

Кстати, не понял, как сделать lazy load для строк ниже экрана. Или это уже в коробке?

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

Итоговый результат никак не стилизуется под клиента персональным css.

todomvc.hyoo.ru
todomvc.hyoo.ru

А код не пройдет валидацию, например, если есть одинаковые ID элементов.

Все ID гарантированно уникальны
Все ID гарантированно уникальны

 что-то пикселями и css параметрами в "raw text" а что-то функциями типа rem(что то там). Ээ а можно поконкретнее?

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

Не смог распарсить эти фразы. Можно расшифровать?

Непонятно кому я задаю стиль - где-то простановка тэгу html где-то тэгу с определенным id.

Откуда вы всё это берёте-то?

Но не очевидно после получения кода страницы HTML - какой сущности сейчас проставляется стиль.

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

 как сделать lazy load для строк ниже экрана

Infinite scroll? Тут пример кода, а тут он в действии.

$mol_infinite
$mol_infinite

Или именно lazy load? Ну он работает и ниже, и выше экрана. Тут пример кода, а тут он в действии.

Спасибо за примеры. Я прошел по ссылкам "подобные таблицы делаются на $mol. Тут можно глянуть код, а тут пощупать его в действии".

валидация: Сохранил файл с таблицей на рабочем столе. Отправил файл на валидацию в 3W org.

В примере таблицы - жестко заданы в style="min-height: 24px; min-width: 40px;" как мне это переопределить именно для этого примера через внешний CSS?

как то так.

Минимальные размеры вычисляются на основе контента, если не заданы явно в коде. Они используются не для стилизации, а для виртуализации рендеринга.

пока с этим невозможно работать

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

Короче, все вы *** любители реакта, а я граф Монте Кристо Дмитрий Карловский.

К слову, $mol активно развивается уже дольше, чем некогда популярный AngularJS, появившийся в 2010 и депрекейтнутый в 2016.

Но в Vue можно использовать так называемые примеси (mixins), которые позволяют избежать подобных повторений.

Нельзя. Точнее можно, но за такое надо по рукам бить. Даже в документации по Vue 3 написано, что больше не рекомендуется их использовать.

Добрый день!

Поправьте если ошибаюсь, 999999 строк в таблице, кол-во строк на странице 12, даёт 83333 страниц, что покрывает 999996 строк.

Этот код для 10 строк и 3 строк на страницу даёт 3 страницы. Это так задумано?

this.pages = Math.floor(this.rows / this.page_size + .5)  

Я вообще не специалист по vue, но меня покорежило

watch: {
    page_size(size) {
      const num = Math.floor(this.start / size)
      this.start = num * this.page_size + 1
      this.num = num + 1
      this.page = Table.slice(this.start, this.start + this.page_size) // раз
      this.pages = Math.floor(this.rows / this.page_size + .5)
    },
  },
  methods: {
    go() {
      console.log('Entered: ' + this.num)
      this.start = (this.num - 1) * this.page_size + 1
      this.page = Table.slice(this.start, this.start + this.page_size) // два
    },
    prev() {
      if (this.num == 1) return
      --this.num
      this.start -= this.page_size
      this.page = Table.slice(this.start, this.start + this.page_size) // три
    },
    next() {
      if (this.num == this.pages) return
      ++this.num
      this.start += this.page_size
      this.page = Table.slice(this.start, this.start + this.page_size) // четыре
    },
    top() {
      this.start = this.num = 1
      this.page = Table.slice(this.start, this.start + this.page_size) // пять
    },
    bottom() {
      this.num = this.pages
      this.start = (this.num - 1) * this.page_size
      this.page = Table.slice(this.start, this.start + this.page_size) // шесть
    }
  }

Так можно же?

watch: {
  start(val) {
      this.start = val;
      this.page = Table.slice(this.start, this.start + this.page_size)
    },
    page_size(size) {
      const num = Math.floor(this.start / size)
      this.start = num * this.page_size + 1
      this.num = num + 1
      this.pages = Math.floor(this.rows / this.page_size + .5)
    },
  },
  methods: {
    go() {
      console.log('Entered: ' + this.num)
      this.start = (this.num - 1) * this.page_size + 1
    },
    prev() {
      if (this.num == 1) return
      --this.num
      this.start -= this.page_size
    },
    next() {
      if (this.num == this.pages) return
      ++this.num
      this.start += this.page_size
    },
    top() {
      this.start = this.num = 1
    },
    bottom() {
      this.num = this.pages
      this.start = (this.num - 1) * this.page_size
    }
  }

Sign up to leave a comment.