This media is not supported in your browser
VIEW IN TELEGRAM
Марио передвигается клавишами влево-вправо-вниз-вверх
Написано на чистом
Предположения, как это может быть реализовано?
#css #challenge
Написано на чистом
CSS
Предположения, как это может быть реализовано?
#css #challenge
👍3
В следующей версии Vue - Official будет удалена функция переключения синтаксиса v-bind, поскольку новое расширение VSCode реализовало ту же и более продвинутую функциональность. Если оно вам нужно, вы можете установить и попробовать его прямо сейчас.
Мейнтенер
Volar
-a продолжает чудить.Теперь надо устанавливать дополнительное расширение в
VS Code
(у которого на данный момент всего 20 установок), чтобы редактор ставил двоеточие перед именем пропса при обнаружении в нем js
выражения.Судя по главному спонсору расширения (
antfu
) и отсутствии привязанность к Vue
в описании, это еще один шаг в сторону Un
-иверсализации рожденного в- и около Nuxt
кода на другие библиотеки и фреймворки, теперь ценой DX
простых Vue
-разработчиков.Раньше казалось, что
Johnson Chu
просто ошибается, но теперь понятно, что это натуральный вредитель.Хейт.
#volar
🤡4🙉1
Через неделю после разноса Минина АйТиБородой пришла ответка от Владилена.
По результатам он, в целом, упрочил свое положение среди своей аудитории.
И согласился на дебаты с Мурычем.
#minin #itbeard
По результатам он, в целом, упрочил свое положение среди своей аудитории.
И согласился на дебаты с Мурычем.
#minin #itbeard
YouTube
Он вам не АйтиБорода
Мой телеграм канал: https://t.me/js_by_vladilen
Нельзяграм: https://www.instagram.com/vladilen.minin/
Ресурсы из видео:
Климов не выпускает курс 5 лет: https://github.com/sinyakov/javascript-ninja/blob/master/README.md
Борода в Wiki: https://ru.wikipe…
Нельзяграм: https://www.instagram.com/vladilen.minin/
Ресурсы из видео:
Климов не выпускает курс 5 лет: https://github.com/sinyakov/javascript-ninja/blob/master/README.md
Борода в Wiki: https://ru.wikipe…
🤡5🤯2💩2🖕2👍1🤮1🤣1
Есть два основных подхода для аутентификации пользователя
Аутентификация на основе сессии
При этом подходе вы храните информацию о сессии в базе данных или хранилище сессий и передаете идентификатор сессии пользователю.
Представьте, что пассажир получает только идентификатор билета на свой рейс, а все остальные данные хранятся в базе данных авиакомпании.
Вот как это работает:
- Пользователь делает запрос на вход в систему, и он отправляется на внутренний сервер..
- Бэкэнд создает сессию с использованием секретного ключа и сохраняет данные в хранилище сессий.
- Сервер отправляет клиенту cookie с уникальным идентификатором сессии.
- Пользователь делает новый запрос, и браузер отправляет идентификатор сессии вместе с запросом.
- Сервер аутентифицирует пользователя по идентификатору сессии.
Аутентификация на основе JWT
В подходе на основе JWT информация о сессии не хранится в хранилище сессий.
Вся информация доступна в токене.
Представьте себе, что вы получаете авиабилет вместе со всеми деталями, имеющимися на билете, но в закодированном виде.
Вот как это работает:
- Пользователь делает запрос на вход в систему, и он отправляется на внутренний сервер.
- Сервер проверяет учетные данные и выдает JWT. JWT подписывается с помощью закрытого ключа и не требует хранения сессии.
- JWT передается клиенту либо в виде cookie, либо в теле ответа. У обоих подходов есть свои плюсы и минусы.
- При каждом последующем запросе браузер отправляет cookie с JWT.
- Сервер проверяет JWT с помощью секретного закрытого ключа и извлекает информацию о пользователе.
#jwt #auth
Аутентификация на основе сессии
При этом подходе вы храните информацию о сессии в базе данных или хранилище сессий и передаете идентификатор сессии пользователю.
Представьте, что пассажир получает только идентификатор билета на свой рейс, а все остальные данные хранятся в базе данных авиакомпании.
Вот как это работает:
- Пользователь делает запрос на вход в систему, и он отправляется на внутренний сервер..
- Бэкэнд создает сессию с использованием секретного ключа и сохраняет данные в хранилище сессий.
- Сервер отправляет клиенту cookie с уникальным идентификатором сессии.
- Пользователь делает новый запрос, и браузер отправляет идентификатор сессии вместе с запросом.
- Сервер аутентифицирует пользователя по идентификатору сессии.
Аутентификация на основе JWT
В подходе на основе JWT информация о сессии не хранится в хранилище сессий.
Вся информация доступна в токене.
Представьте себе, что вы получаете авиабилет вместе со всеми деталями, имеющимися на билете, но в закодированном виде.
Вот как это работает:
- Пользователь делает запрос на вход в систему, и он отправляется на внутренний сервер.
- Сервер проверяет учетные данные и выдает JWT. JWT подписывается с помощью закрытого ключа и не требует хранения сессии.
- JWT передается клиенту либо в виде cookie, либо в теле ответа. У обоих подходов есть свои плюсы и минусы.
- При каждом последующем запросе браузер отправляет cookie с JWT.
- Сервер проверяет JWT с помощью секретного закрытого ключа и извлекает информацию о пользователе.
#jwt #auth
👍8
Есть инструмент для облегчения миграции с миксинов на композаблы - vue-mixable
Автор - член
#mixins
Автор - член
Vue.js
команды Linus Borg
#mixins
GitHub
GitHub - LinusBorg/vue-mixable: Turn Vue Mixins into Composables with a simple wrapper function
Turn Vue Mixins into Composables with a simple wrapper function - LinusBorg/vue-mixable
👍6
Такая забавная статья про
Автор хочет типизацию как в
#css #ts
CSS
попаласьАвтор хочет типизацию как в
TypeScript
, но только для CSS
#css #ts
Хабр
CSS-классы вредны
Если вы когда-нибудь заглядывали за кулисы пользовательских веб-интерфейсов, то знаете для чего нужно свойство class . Оно ведь нужно для связи HTML с CSS, правда? Сейчас я расскажу о том, почему...
💩3👍2👎1
// Vue 3
const app = createApp(App);
app.config.errorHandler = (err) => {
alert(err);
};
Во
Vue
можно создать собственный обработчик ошибок и ворнингов для лучшей обработки ошибок для улучшения UX
.Например, вместо того, чтобы приложение падало, если ошибка не была обработана, вы можете показать специальный экран ошибки и попросить пользователя обновить страницу или сделать что-то еще.
Обработчик ворнингов работает только в
dev
режиме.#tip
👍10
Для чего нужны
В проектах
tsconfig.json:
- Основной файл конфигурации
- Определяет глобальные настройки
- Может включать ссылки на другие файлы конфигурации
-
tsconfig.node.json:
- Конфигурация
- Определяет настройки
- Используется
#vite #ts #nodejs
tsconfig.node.json
, tsconfig.json
, (tsconfig.vitest.json
)?В проектах
Vue
, созданных с помощью Vite
, используются несколько файлов конфигурации TypeScript
, каждый из которых играет свою роль в компиляции и тестировании TypeScript
-кода.tsconfig.json:
- Основной файл конфигурации
TypeScript
.- Определяет глобальные настройки
TypeScript
для всего проекта, такие как целевая версия JavaScript
, модульная система, пути к файлам и т.д.- Может включать ссылки на другие файлы конфигурации
TypeScript
(extends, references).-
tsconfig.json
по умолчанию не используется в Vite
для компиляции кода.tsconfig.node.json:
- Конфигурация
TypeScript
для среды Node.js
.- Определяет настройки
TypeScript
, специфичные для компиляции кода в Node.js
.- Используется
Vite
для компиляции TypeScript
-кода серверной части приложения.#vite #ts #nodejs
👍5🔥5👎1
При попытке пользователя уйти с сайта (
Вот пример Vue 3 композабла для этого
#tip
exit-intent
), можно показывать сообщение (мольба остаться, подарок суперскидки, предложение сохранить сделанные изменения и т.п.)Вот пример Vue 3 композабла для этого
#tip
GitHub
GitHub - nickap/vue-exit-intent: A helper to know when a user is about to leave your page.
A helper to know when a user is about to leave your page. - nickap/vue-exit-intent
👎5👍4🖕1
Все браузеры кроме
#animation
Firefox
поддерживают View Transitions API - это примерный аналог анимаций Transition
во Vue.js
#animation
MDN Web Docs
View Transition API - Web APIs | MDN
The View Transition API provides a mechanism for easily creating animated transitions between different website views. This includes animating between DOM states in a single-page app (SPA), and animating the navigation between documents in a multi-page app…
Распространенные ошибки при работе с Vue
- Упущение
-
- Неправильное наблюдение (
- Замена реактивного состояния неправильным способом
- Изменение пропсов
- Забывание ручной очистки
- Ожидание, что изменения в нереактивных зависимостях вызовут обновления в реактивных переменных
- Не рассматривание для использования
- Деструктуризация
- Вызов
- Использование
- Ненужные ручные манипуляции с
#tip
Omitting the Key Directive on v-for
Prop Drilling
Watching Arrays the Wrong Way
Replacing Reactive State the Wrong Way
Unintentionally Mutating Props
Forgetting to Clean Up Your Manual Event Listeners
Expecting Changes to Non-Reactive Dependencies to Trigger Updates
Not Considering TypeScript
Destructuring Reactive Data
Calling Composables in the Wrong Place
Using v-html with User Provided Data
Unnecessary Manual DOM Manipulation
- Упущение
key
директивы для v-for
-
Prop Drilling
- Неправильное наблюдение (
watch
) за массивами - Замена реактивного состояния неправильным способом
- Изменение пропсов
- Забывание ручной очистки
Event Listeners
- Ожидание, что изменения в нереактивных зависимостях вызовут обновления в реактивных переменных
- Не рассматривание для использования
TypeScript
- Деструктуризация
Reactive
данных - Вызов
composables
в неправильных местах- Использование
v-html
с данными, полученными от пользователя- Ненужные ручные манипуляции с
DOM
#tip
👎4👍2🔥2❤1
В решениях Избиркома РФ попадаются такие фразы:
Вот так. Теперь мы, значит, программные изделия точим...
#meme
...обеспечить возможность использования специализированного программного изделия для подготовки документов на бумажном носителе и в машиночитаемом виде, представляемых в избирательные комиссии при проведении выборов депутатов...
Вот так. Теперь мы, значит, программные изделия точим...
#meme
😁2🤮1💩1
Я полез по форумам и документации. Начал натягивать это все на глобус конкретного проекта и столкнулся с тем, с чем сталкивается, кажется, 100% (??) команд – что такое фича? чем фича отличается от энтити? А вот этот вот конкретный кусок кода – это что? Куда его положить? На форумах горели костры священных войн. Одни говорили, что в документации все написано, другие кричали, что определения некорректны. Третьи спорили, что куда и в каком виде можно вкладывать.
В итоге, сложилось ощущение, что FSD к нам пришел, как Троянский конь к воротам Трои и за красивой оберткой скрывается потенциальный портал в ад и бесконечные споры в команде. Это мне точно не подходило.
Бесценный опыт IT команды Спортмастера с
FSD
#fsd #architecture
🔥12🤔2💯2🤷♂1👍1🌚1