Skip to content

Instantly share code, notes, and snippets.

View viT-1's full-sized avatar

Vitaly Pinchuk viT-1

View GitHub Profile
@viT-1
viT-1 / script-setup.md
Last active August 4, 2023 08:16
#gist-bookmark #vue

Vue3 (Composition API) не поддерживает (script setup src) традиционную схему разделения кода на esm-модули, так как принуждает прописывать код в *.vue-файлах (SFC). Соответственно тонко рулить import'ами похоже не выйдет.

Более того, если ранее с использованием vue-class-component приучали к "чистому коду" (всё что требуется импортируем явно), то теперь с такими конструкциями как defineProps вновь идёт откат к использованию окружения.

Too much magic!

Workaround:

@viT-1
viT-1 / dialog-modal.md
Last active August 25, 2023 12:10
#gist-bookmark #ux #test

Рекомендации относительно модалок

Лучше решать другим способом задачу (не перекрывая экрана) в случаях, если

  • требуется вывести ошибку (можно использовать всплывающую панель или подсказку у поля ввода)
  • показывать прогресс загрузки, статус ожидания/завершения (лучше на том же элементе, на котором совершали action приведший к ожиданию)
  • возникает желание вывести модалку поверх модалки

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

Содержимое модалок

  • У модального окна, как у любой обычной страницы, должен быть свой заголовок. Короткий, точно описывающий его предназначение.
@viT-1
viT-1 / vue-mutate-props.md
Created December 21, 2023 09:00
#gist-bookmark #js #vue #mutate #props

Vue.js props mutating: how an anti-pattern could be considered a good practice

О том, что не всегда следует придерживаться рекомендациям Vue, по clone-emit данных, так как JS, передающий данные свойств объекта по ссылке, а не по значению это не только зло, но и добро. Об этом в документации Vue3 и Vue2.

When objects and arrays are passed as props, while the child component cannot mutate the prop binding, it will be able to mutate the object or array's nested properties. This is because in JavaScript objects and arrays are passed by reference, and it is unreasonably expensive for Vue to prevent such mutations.

Mutating Object / Array Props When objects and arrays ar

@viT-1
viT-1 / conf-message-strings.md
Created December 22, 2023 10:35
#gist-bookmark #js #i18n #vue