Каждый влияет на скорость, SEO и даже на то, видит ли пользователь хоть что-то, пока грузится JS.
— как браузер решает, кто рендерит страницу — он или сервер;
— почему CSR «просыпается» с белого экрана;
— где SSG выигрывает даже у SSR;
— и как Next.js позволяет комбинировать стратегии в одном проекте.
#blueprint
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍1
Пять лет на React — и вдруг понял, что жизнь без useEffect реально возможна. Ниже — коротко, в чём именно разница
const [count, setCount] = useState(0)
setCount(count + 1)
const count = ref(0)
count.value++
Просто работаешь с переменной — и всё обновляется. Никаких setState, никаких магических зависимостей.
const filtered = useMemo(() => items.filter(i => i.active), [items])
const filtered = computed(() => items.value.filter(i => i.active))
Во Vue не нужно думать про зависимости — оно само знает, когда пересчитать значение.
<div v-for="item in items" :key="item.id"> читается легче, чем {items.map(item => <div>...)}. v-if, v-show, v-model — три директивы, которые убирают сотни строк boilerplate.
useEffect(() => {
if (email && !isValidEmail(email)) setError(‘Invalid’)
else setError(’’)
}, [email])
const email = ref(’’)
const error = computed(() => email.value && !isValidEmail(email.value) ? ‘Invalid’ : ‘’)
Что реально зацепило:
1. Нет useEffect hell — watch и watchEffect проще и читаемее.
2. v-model — двустороннее связывание без боли и бойлерплейта.
3. Меньше бандл: React + ReactDOM ≈ 45 KB (gzip), Vue 3 ≈ 34 KB (gzip).
Что не зашло:
— Экосистема меньше
— TypeScript-интеграция всё ещё местами шероховата
На работе продолжаю React (экосистема, команда, легаси). Но когда сажусь за свой проект в выходные — открываю Vue.
#code_battle
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16🌚3🥰2👏2🎉1
А вы на чём пишете сейчас ❔
Anonymous Poll
44%
React (и доволен)
18%
React (но хочу попробовать Vue)
27%
Vue (и доволен)
2%
Vue (но думаю вернуться к React)
9%
Использую оба
🥰6
YeaHub — открытый репозиторий для прокачки навыков и подготовки к собесам в IT. Есть тренажёр интервью, скоро добавят публикации и карьерные дорожные карты.
#readme
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍1
Классика: делаешь height: 100vh для фуллскрин-секции, на десктопе всё ок, а на телефоне контент уезжает за экран и появляется скролл.
Браузер считает 100vh по полной высоте экрана, включая скрывающиеся панели. Когда скроллишь — адресная строка прячется, высота viewport меняется, и блок начинает прыгать.
Раньше приходилось считать реальную высоту через JS — решение рабочее, но костыль.
dvh — динамическая высота, подстраивается при скролле
svh — учитывает адресную строку
lvh — без адресной строки, максимальная высота
Поддержка: iOS 15.4+, Chrome 108+, Safari 15.4+
Сначала указываем height: 100vh, а следом height: 100dvh — новые браузеры просто переопределят старое значение.
#hotfix #css
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16🥰5❤🔥3❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁12🌚2