TGViewer
Vueist Vueist @vueist · 1.19K subscribers
Post #99 3.26K
Гайд по Vue в 2026

Актуализируем свои проекты с последними тенденциями и мощностями.

Обговорим весь стек.
1 шаблоны показали свою неэффективность используйте нечто иное
- язык <template lang="pug">: позволит эффективнее использовать переменные в шаблонах, делать преиспользуемые части без костылей и сильно лаконичнее
- использовать jsx: аналогично тому что выше, но вы можете улучшить экспириенс с помощью jsx-directive + setup sfc.
import { ref } from 'vue'

defineProps<{
title: string
}>()

const count = ref(0)

export default () => (
<section>
<h3>{title}</h3>

<button onClick={() => count.value++}>+1</button>

<p v-if={count.value === 0}>Пока пусто</p>
<p v-else>Счёт: {count.value}</p>

<ul>
<li v-for={(item, index) in count.value} key={index}>
Элемент #{item}
</li>
</ul>
</section>
)


Итого получаете все плюсы всех подходов разом

2. SASS не отвечает современным требованиям. Лучше совместить самые мощные и лучшие подходы + всегда выносите файл отдельно и переиспользуйте его между компонентами. Это кратно облегчит ваш бандл. Создаст единую точку ответственности и позволит вам легко и просто писать стили любой сложности
@reference "../../app.css"

radius = 16px
gap = 12px

.card
@apply rounded-xl border border-slate-200 bg-white p-4 shadow-sm
border-radius radius

&--active
@apply ring-2 ring-blue-500

&__title
@apply text-lg font-semibold text-slate-900
margin-bottom gap

&__text
@apply text-sm text-slate-600

&__button
@apply mt-3 inline-flex items-center rounded-md bg-slate-900 px-3 py-2 text-sm font-medium text-white transition
&:hover
@apply bg-slate-700

@media (min-width: 768px)
@apply p-6


Теперь по инструментам:
Реактивность вью слишком громоздкая лучше предпочесть легковесную и мощную систему наносторов а для логики использовать ее написание на rxjs
// stores/counter.ts
import { atom } from 'nanostores'
import { Subject } from 'rxjs'

export const $count = atom(0)

const increment$ = new Subject<void>()

increment$.subscribe(() => {
$count.set($count.get() + 1)
})

export function increment() {
increment$.next()
}

Ну и основной набор инструментов:
- роутер: nanostores router
- SSR/SPA: vike гибкая альтернатива наксту, который позволит вам с меньшей магией управлять вашим приложением в любом из режимов

Все это позволит сделать ваши приложения
- легковесными
- быстрыми
- вам будет нужно писать сильно меньше кода для поддержки
- все эти инструменты хорошо известны ИИ и идеальны в сочетании с агентным кодингом
  • 😁 65
  • 🤪 24
  • 🤡 12
  • 🔥 4
  • 🤝 2
  • ❤ 1
  • 👍 1
  • 🤬 1
More from @vueist
  1. Jun 2, 2026Не хочу ничего более обсуждать. Сегодня на улице праздник!
  2. Mar 7, 2026Порция RFC Видимо под влиянием анонса Solid 2 один из членов кор тимы vue (ubugeeei) решил…
  3. Mar 6, 2026Мы дождались. Vue-ответ на современные вызовы (Tanstack Query) вышел в релиз: Pinia Colada…
  4. Mar 5, 2026Post #96
  5. Mar 3, 2026Ну что, ждем официальный порт Lynx (альтернатива react-native, работает по принципам схожи…
  6. Feb 6, 2026Мне прислали вопрос по моему докладу: почему нежелательно использовать классы вместо компо…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →