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 / conf-message-strings.md
Created December 22, 2023 10:35
#gist-bookmark #js #i18n #vue
@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 / dialog-modal.md
Last active August 25, 2023 12:10
#gist-bookmark #ux #test

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

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

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

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

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

  • У модального окна, как у любой обычной страницы, должен быть свой заголовок. Короткий, точно описывающий его предназначение.
@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 / how-to-jest-esm.md
Last active April 9, 2023 20:50
#gist-bookmark #jest #test #esm #alias #js
@viT-1
viT-1 / specificy-wars.md
Last active November 21, 2022 15:08
#gist-bookmark #css

:where selector for getting 0 specificy is like a joke or kludge which doesn't prevent codebase from same tricks further!

@layer is a good idea to get more control over good code, but not for bad codebase

@viT-1
viT-1 / vue-class-vs-composition-api.md
Last active November 2, 2022 20:48
#gist-bookmark #vue #class #oop

Что делать с синтаксисом, когда даже с вводом в Vue3 поддержки TypeScript из коробки, классы не выжили?

@viT-1
viT-1 / archibald-campaign-is-not-available.md
Created August 6, 2022 13:42
#gist-bookmark #homm2 #heroes2 #strategy #game

Why Archibald campaign is not available in cutted (minimal mb) version of original game. FIX: copy ANIM directory.

@viT-1
viT-1 / jest-snap-test.md
Created January 24, 2022 13:31
#gist-bookmark #jest #test #js
@viT-1
viT-1 / ms-mcse-local-to-cloud.md
Created January 24, 2022 12:45
#gist-bookmark #microsoft #certification #cloud

27.02.2020 Microsoft избавляется от сертификаций MCSA, MCSD и MCSE: Компания Microsoft c 30 июня 2020 года прекратит выдавать новые сертификации по программам MCSA, MCSD и MCSE, также с этой даты будут отменены и станут недоступны экзамены, связанные с этими сертификациями.

Microsoft представила новый рекомендуемый путь для дальнейшей сертификации специалистов по продуктам и решениям Microsoft на основе ролей/специализаций. И что показательно, «наземных» продуктов и решений там нет. Всё в облаке. Они и домашнем сегменте тоже перетащат людей в облако. Несколько дней назад была новость о том, что пользователи Windows 10 Home лишились возможности иметь локальные аккаунты.