Если вы хотите у некоторых страниц сделать свой
#router #tip
title
(и meta description
), то это органично делается через routes
и router navigation guard
безо всяких useHead
-овexport const routes = [{
name: 'about',
path: '/about',
meta: {
title: 'My name is Bond',
description: 'James Bond',
}
}];
router.beforeEach((to) => {
const { title, description } = to.meta;
document.title = title || 'Default Title';
document
.querySelector('head meta[name="description"]')
.setAttribute('content', description || 'Default Description')
})
#router #tip
Еще один пример функциональности современного CSS
Мы уже рассказывали, как избежать дерганий экрана из-за появляющегося/исчезающего скроллбара при открытии модального окна. Вот еще один вариант по условию влиять на глобальные свойства через
#css #tip
Мы уже рассказывали, как избежать дерганий экрана из-за появляющегося/исчезающего скроллбара при открытии модального окна. Вот еще один вариант по условию влиять на глобальные свойства через
:has()
#css #tip
С Пасхой!
Афинский суд оправдал журналиста, который утверждал, что раскрыл тайну схождения Благодатного огня.
Как сообщает греческий портал avgi.gr, журналист Димитрис Аликакос в 2019 написал книгу о Благодатном огне, которую Иерусалимский Патриархат назвал богохульством.
Причиной иска стали материалы, включённые Аликакосом в его книгу и видеосюжет, из которых следовало, что церемония схождения Благодатного огня в Храме Гроба Господня является не чудом, а результатом человеческого вмешательства.
В 2018 году Димитрис Аликакос поехал в Иерусалим, чтобы исследовать ритуал схождения Благодатного огня. Он взял интервью у нескольких священников, в том числе у отвечающего за ритуальные предметы храма Гроба Господня архиепископа Исидора.
Архиепископ в разговоре в журналистом рассказал, что огонь зажигают с помощью зажигалки. Интервью вошло в книгу Аликасоса, вышедшую в 2019 году.После этого Иерусалимский патриархат подал судебный иск в адрес журналиста и обвинил его в клевете.
Суд постановил, что спорное видео соответствует действительности. В отношении журналиста вынесен оправдательный приговор.
#event #offtop
Афинский суд оправдал журналиста, который утверждал, что раскрыл тайну схождения Благодатного огня.
Как сообщает греческий портал avgi.gr, журналист Димитрис Аликакос в 2019 написал книгу о Благодатном огне, которую Иерусалимский Патриархат назвал богохульством.
Причиной иска стали материалы, включённые Аликакосом в его книгу и видеосюжет, из которых следовало, что церемония схождения Благодатного огня в Храме Гроба Господня является не чудом, а результатом человеческого вмешательства.
В 2018 году Димитрис Аликакос поехал в Иерусалим, чтобы исследовать ритуал схождения Благодатного огня. Он взял интервью у нескольких священников, в том числе у отвечающего за ритуальные предметы храма Гроба Господня архиепископа Исидора.
Архиепископ в разговоре в журналистом рассказал, что огонь зажигают с помощью зажигалки. Интервью вошло в книгу Аликасоса, вышедшую в 2019 году.После этого Иерусалимский патриархат подал судебный иск в адрес журналиста и обвинил его в клевете.
Суд постановил, что спорное видео соответствует действительности. В отношении журналиста вынесен оправдательный приговор.
#event #offtop
В подтверждение нашему недавнему совету по оптимизации js кода, твит Эвана:
Самое приятное в этом то, что вы можете писать хороший функциональный код, который выполняет итерации над коллекциями (аналогично map, filter и т.д.) с оптимизированной вручную производительностью.
Каждый раз, когда я использую map/filter в JS вместо обычных циклов for, мне кажется, что я добровольно отказываюсь от производительности.
#tip #optimization #evanyou
Самое приятное в этом то, что вы можете писать хороший функциональный код, который выполняет итерации над коллекциями (аналогично map, filter и т.д.) с оптимизированной вручную производительностью.
Каждый раз, когда я использую map/filter в JS вместо обычных циклов for, мне кажется, что я добровольно отказываюсь от производительности.
#tip #optimization #evanyou
Относительно неплохой список технологий и практик современного фронтенда
https://roadmap.sh/frontend
Роадмап по
#frontend #roadmap
https://roadmap.sh/frontend
Роадмап по
Vue.js
у них не очень#frontend #roadmap
roadmap.sh
Frontend Developer Roadmap: What is Frontend Development?
Learn what Frontend Development is, what frontend developers do and how to become a modern frontend developer using our community-driven roadmap.
Если попытаться использовать
то выходит ошибка:
Это потому, что
В то же время,
Чтобы использовать
Тем не менее, текст вышеуказанной ошибки не совсем корректен, потому что доступ к
Это удобно при создании, например, плагинов, когда доступа к своему синглтону
Кстати, на Хабре недавно была большая статья про контексты
#tip #provide #router
vue-router
в js
/ts
модуле или composable
функции, import { useRouter } from "vue-router";
function foo() {
const router = useRouter();
}
то выходит ошибка:
[Vue warn]: inject() can only be used inside setup() or functional components.
Это потому, что
vue-router
, Pinia
, PrimeVue.Toast
и многие другие библиотеки используют provide/inject
для глобального внедрения своих элементов в ваше приложение.// vuejs/packages/router/src/useApi.ts
export function useRouter(){
return inject(routerKey)
}
В то же время,
provide/inject
во Vue работает только в контексте приложения.Чтобы использовать
vue-router
в js
модулях приходится создавать отдельный синглтон для router
, инициализировать его через createRouter()
и затем использовать обычный ES импорт где надо. Почему вместо стандартного ES экспорта/импорта
сделано такое усложнение через provide/inject
не совсем понятно.Тем не менее, текст вышеуказанной ошибки не совсем корректен, потому что доступ к
inject()
можно получить явно выполнив код в контексте приложения:// plugins/debug.ts
import { useRouter } from "vue-router"
export default {
install(app) {
app.runWithContext(() => {
const router = useRouter();
router.addRoute({ "/debug", () => import('@/views/DebugView.vue') });
})
}
}
Это удобно при создании, например, плагинов, когда доступа к своему синглтону
router
еще нет.Кстати, на Хабре недавно была большая статья про контексты
Vue
и Nuxt
#tip #provide #router
Эван выбрался из своего Сингапура на Accel Open Source конференцию и гуляет по Сан-Франциско перед отъездом домой.
Сильно понравился нижний коммент.
#evanyou #vercel
Сильно понравился нижний коммент.
#evanyou #vercel
На этих выходных Vue Mastery опять устраивает бесплатный показ своего кено.
#vuemastery #learning #video
#vuemastery #learning #video
Vue Mastery
Free Weekend May 10-12 2024
Join me to watch all of @VueMastery’s courses free through May 10-12
Для меня
#api #hoppscotch #postman
Hoppscotch
вне конкуренции, но, всё-таки, сравнительная таблица инструментов для работы с web API.#api #hoppscotch #postman
JavaScript
по популярному рейтингу Tiobe
обогнал Visual Basic
в этом годуTiobe
просто подсчитывается количество результатов поисковых движков по каждому языку программирования.Более объективный StackOverflow Annual Survey показывает совсем другие результаты
#lang #js
This media is not supported in your browser
VIEW IN TELEGRAM
Новости искусственного интеллекта
CEO компании Bumble (онлайн приложение для знакомств типа Тиндера) рассказывает о планах по использованию в этой сфере AI.
Твой AI помощник по свиданиям будет встречаться вместо тебя с AI помощником по свиданиям другого человека и давать оценку успешности возможных реальных отношений. Как бы решая проблему 600 откликов на твою фотку.
Забавно, жутко, но не лишено смысла.
#ai #offtop
CEO компании Bumble (онлайн приложение для знакомств типа Тиндера) рассказывает о планах по использованию в этой сфере AI.
Твой AI помощник по свиданиям будет встречаться вместо тебя с AI помощником по свиданиям другого человека и давать оценку успешности возможных реальных отношений. Как бы решая проблему 600 откликов на твою фотку.
Забавно, жутко, но не лишено смысла.
#ai #offtop
15 отличий
1) вью более предсказуемый. Он ближе к стандартам на порядок
2) vue обладает глубокой мутабельной реактивностью что в разы облегчает вход для начинающих
3) реактивность основанная на полях а не методах, что тоже более интуитивно и просто для вката
4) шаблоны имеют строгие ограничения что заставляет писать более предсказуемый флоу
5) vue это фреймворк с богатой ОФИЦИАЛЬНОЙ обвязкой, что позволяет сосредоточиться на меньшем спектре библиотек и понимать код почти любого vue проекта
6) глубокая мутабельная реактивность на основе свойств
7) слоты
8) директивы гораздо лучше решают задачи управлением флоу чем методы JS
9) HTML-совместимость (да v-for нет в самом HTML но он парсится парсером HTML и поддается обработке)
10) SFC без необходимости CSS-in-JS
11) JS-in-CSS
12) большая официальная экосистема
13) DX-ориентированность. Те если есть апишки, то они пытаются быть удобными для разработчиков
14) Экосистема растущая во вне, а не вовнутрь (мы помогаем всем - все помогают нам)
15) Хорошая расширяемость API
#vuejs #react
Vue.js
от React
от Дениса Чернова1) вью более предсказуемый. Он ближе к стандартам на порядок
2) vue обладает глубокой мутабельной реактивностью что в разы облегчает вход для начинающих
3) реактивность основанная на полях а не методах, что тоже более интуитивно и просто для вката
4) шаблоны имеют строгие ограничения что заставляет писать более предсказуемый флоу
5) vue это фреймворк с богатой ОФИЦИАЛЬНОЙ обвязкой, что позволяет сосредоточиться на меньшем спектре библиотек и понимать код почти любого vue проекта
6) глубокая мутабельная реактивность на основе свойств
7) слоты
8) директивы гораздо лучше решают задачи управлением флоу чем методы JS
9) HTML-совместимость (да v-for нет в самом HTML но он парсится парсером HTML и поддается обработке)
10) SFC без необходимости CSS-in-JS
11) JS-in-CSS
12) большая официальная экосистема
13) DX-ориентированность. Те если есть апишки, то они пытаются быть удобными для разработчиков
14) Экосистема растущая во вне, а не вовнутрь (мы помогаем всем - все помогают нам)
15) Хорошая расширяемость API
#vuejs #react
Telegram
Denis Chernov in Vue.js — русскоговорящее сообщество
окей
1) вью более предсказуемый. Он ближе к стандартам на порядок
2) vue обладает глубокой мутабельной реактивностью что в разы обле5гчает вход для начинающих
3) реактивность основанная на полях а не методах, что тоже более интуитивно и просто для вката
4)…
1) вью более предсказуемый. Он ближе к стандартам на порядок
2) vue обладает глубокой мутабельной реактивностью что в разы обле5гчает вход для начинающих
3) реактивность основанная на полях а не методах, что тоже более интуитивно и просто для вката
4)…
This media is not supported in your browser
VIEW IN TELEGRAM
Ссылка на код из видео
На первом курсе университета у нас одной из задач для зачета по программированию была следующая:
- написать программу на любом языке программирования, которая в качестве вывода печатала бы свой исходный код. Естественно, без использования функций работы с файловой системой.
Самое элегантное решение занимало около 5 строк. Интересно, на JavaScript такое можно?
#js #chalenge
На первом курсе университета у нас одной из задач для зачета по программированию была следующая:
- написать программу на любом языке программирования, которая в качестве вывода печатала бы свой исходный код. Естественно, без использования функций работы с файловой системой.
Самое элегантное решение занимало около 5 строк. Интересно, на JavaScript такое можно?
#js #chalenge
Vite
при сборке использует ES modules
и ряд других относительно современных технологий. Если вам нужна поддержка старых браузеров, включая IE 11, то для этого у Vite
есть плагин plugin-legacy#vite #legacy
GitHub
vite/packages/plugin-legacy at main · vitejs/vite
Next generation frontend tooling. It's fast! Contribute to vitejs/vite development by creating an account on GitHub.
This media is not supported in your browser
VIEW IN TELEGRAM
Codeium
, всё-таки, мощьСгенерил все что надо, распарсил, собрал и положил куда надо, создав внутренний цикл исходя из контекста. Причем, контекст (бэкенд) написан на другом языке.
Комбинация для вызова инлайн чатбота - CTRL+SHIFT+I
#codeium
Google Firebase сдался и добавил в свои сервисы
Пока в виде preview сервис можно попробовать бесплатно. Потом собираются брать плату и за саму базу, и за API доступа к ней.
Вряд ли Google с такими политиками сможет конкурировать с
На данный момент это две основные площадки, с которыми фронтендер или мобильный разработчик может без излишних усилий сделать удобный облачный бэкенд, как без логики (с простым
#firebase #supabase
SQL
базу данных (облачную PostgreSQL
) в форме Firebase Data Connect.Пока в виде preview сервис можно попробовать бесплатно. Потом собираются брать плату и за саму базу, и за API доступа к ней.
Вряд ли Google с такими политиками сможет конкурировать с
Supabase
.На данный момент это две основные площадки, с которыми фронтендер или мобильный разработчик может без излишних усилий сделать удобный облачный бэкенд, как без логики (с простым
CRUD
доступом), так и с ней (Functions
, Auth
), и оставаясь в рамках стандартов (не сильно привязываясь к проприетарным решениям провайдеров сервисов).#firebase #supabase
Firebase
Firebase Data Connect
Firebase's first relational database solution for developers who want to create secure and scalable apps with Cloud SQL for PostgreSQL and type-safe mobile and web SDKs. Learn more.