Еще одна 
proxima-vue
В альфа версии, но кода много
#ui #lib
  
  UI библиотека на Vue 3 от нашего соотечественника для ознакомленияproxima-vue
В альфа версии, но кода много
#ui #lib
proxima.wiki
  
  
  UI Component Library for Vue 3 and Nuxt
👍9
  👍8🆒5🤩2😍2
  Options API - это FSDComposition API с composables - модульная архитектура.(аналогия)
FSD в основу иерархичного разбиения ставит программный функционал. Модульная - доменные сущностиМожно провести аналогию c физиологией человека
Можно изучать человека разбивая его на руки, ноги, тело, голову и внутри уже по органам, тканям и т.д.
FSD же на верхнем уровне разбивает сперва по органам и тканям - кровеносная система, ЖКТ, мышечные ткани, и внутри уже разбивает по доменам - рот и кишечник внутри ЖКТТак же и с переходом от
Options API к Composition API. Было разбиение по фичам (options), стало - по бизнес / доменным сущностям (композициям). Так лучше.
#fsd #architecture
👍6🔥2💩1💯1
  Про 
Целью их является стилизация элементов в зависимости от контекста родительского контейнера.
Они позволяют создавать правила, которые применяются только при выполнении определенных условий относительно стиля контейнера.
Это дает возможность создавать более адаптивные и контекстно-зависимые стили и стилизовать компоненты в зависимости от их окружения.
В планах поддержка проверки функцией
#css
Container size queries уже все знают. но про Container style queries еще далеко не всеЦелью их является стилизация элементов в зависимости от контекста родительского контейнера.
Они позволяют создавать правила, которые применяются только при выполнении определенных условий относительно стиля контейнера.
Это дает возможность создавать более адаптивные и контекстно-зависимые стили и стилизовать компоненты в зависимости от их окружения.
.card {
  /* ...стили для карточки... */
}
@container style(--background-color: #333) {
  .card {
    /* Стили для карточки, когда у ее родителя темный фон */
    color: white; 
  }
}В планах поддержка проверки функцией
style() не только CSS custom properties, но и простых - style(color: green).Caniuse везде, кроме Firefox#css
🔥32❤2💩2👍1
  Сколько фронтендеров (включая вас) работает на вашем текущем (последнем) Vue проекте?
  Anonymous Poll
    34%
    Работаю solo
      
    19%
    2
      
    15%
    3
      
    11%
    4-5
      
    6%
    6-10
      
    6%
    11-20
      
    3%
    Много
      
    6%
    Я не Vue разработчик
      
    Для 
Для
Добавьте в скрипты своего
Считает число компонент в проекте.
#tip
Linux:"count:sfc": "find . -type f -name '*.vue' ! -path '*/node_modules/*' | wc -l"
Для
Windows:"count:sfc": "Get-ChildItem -Recurse -Include *.vue -Exclude '*/node_modules/*' | Measure-Object -Line"
Добавьте в скрипты своего
package.json. Считает число компонент в проекте.
#tip
👍11
  Теперь попробуем посчитать среднюю компонентную нагрузку на одного vue-разработчика
Возмите суммарное число компонент на ваших активных проектах и поделите на число фронтенд-разработчиков на них, включая вас
  Возмите суммарное число компонент на ваших активных проектах и поделите на число фронтенд-разработчиков на них, включая вас
Anonymous Poll
    15%
    <30
      
    15%
    30-50
      
    15%
    50-100
      
    11%
    100-150
      
    3%
    150-200
      
    5%
    200-300
      
    12%
    300+
      
    25%
    Не делится
      
    🥴9👍1
  Сравнение бесплатных web версий 
Давно заметил, что у
#ai #learning
Gemini 1.5, Grok и Copilot на одном запросе. Gemini 2.0-flash тоже с axios начала.Давно заметил, что у
Gemini часто на голову выше других по качеству ответы. Хоть Google и корпорация зла.Ai можно эффективно использовать как инструмент для обучения. Но тема обучения должна быть достаточно хорошо изучена, с устоявшимися "лучшими практиками"#ai #learning
👍5🤡1
  Написал vite-plugin-json-md
Заменяет в
Удобен при
Обрабатывает как инлайн вставки
#lib #i18n #markdown
  
  Заменяет в
JSON/JSON5 файлах markdown на сконвертированный HTMLУдобен при
i18n (интернационализации), когда текст перевода лежит в json файлах, но иногда бывает на странице сложное форматирование и разбивать по ключам очень хаотично. Можно записать тогда через markdown.Обрабатывает как инлайн вставки
markdown, так и ссылки на внешние md файлы#lib #i18n #markdown
npm
  
  npm: vite-plugin-json-md
  Vite plugin for processing markdown in JSON files. Latest version: 0.7.2, last published: 3 months ago. Start using vite-plugin-json-md in your project by running `npm i vite-plugin-json-md`. There is 1 other project in the npm registry using vite-plugin…
❤🔥9👍3
  Infinity scroll vs. Virtual scroll
Infinity scroll
Загружается дополнительный контент по мере прокрутки страницы. Используется AJAX или аналогичные методы для подгрузки данных с сервера и добавления их в конец списка по мере достижения пользователем конца страницы.
Пользователи видят новый контент без необходимости нажимать кнопку "Загрузить еще" или переходить на другую страницу. Это обеспечивает плавный и непрерывный просмотр.
Производительность ухудшается с увеличением объема данных в DOM, поскольку все данные рендерятся одновременно.
Virtual scroll
Улучшение производительности больших списков происходит за счет рендеринга только видимой части данных. Поддерживается фиксированное количество элементов в DOM, контент которых обновляется динамически в зависимости от позиции прокрутки.
Пользователи также прокручивают список, но рендерятся только видимые элементы, что значительно улучшает производительность, особенно для очень больших списков. Это снижает нагрузку на память и улучшает плавность прокрутки.
#scroll
Infinity scroll
Загружается дополнительный контент по мере прокрутки страницы. Используется AJAX или аналогичные методы для подгрузки данных с сервера и добавления их в конец списка по мере достижения пользователем конца страницы.
Пользователи видят новый контент без необходимости нажимать кнопку "Загрузить еще" или переходить на другую страницу. Это обеспечивает плавный и непрерывный просмотр.
Производительность ухудшается с увеличением объема данных в DOM, поскольку все данные рендерятся одновременно.
Virtual scroll
Улучшение производительности больших списков происходит за счет рендеринга только видимой части данных. Поддерживается фиксированное количество элементов в DOM, контент которых обновляется динамически в зависимости от позиции прокрутки.
Пользователи также прокручивают список, но рендерятся только видимые элементы, что значительно улучшает производительность, особенно для очень больших списков. Это снижает нагрузку на память и улучшает плавность прокрутки.
#scroll
👍7
  В и утащить всю кодовую базу.
#vite #bug
Vite нашли и пофиксили уязвимость - чужой сайт мог обратиться на ваш dev сервер Attack scenario:Обновление вышло сразу для трех последних мажорных версий как
- The attacker serves a malicious web page (http://malicious.example.com).
- The user accesses the malicious web page.
- The attacker sends a fetch('http://127.0.0.1:5173/main.js') request by JS in that malicious web page. This request is normally blocked by same-origin policy, but that's not the case for the reasons above.
- The attacker gets the content of http://127.0.0.1:5173/main.js.
patch, но для некоторых может оказаться breaking change. Подробней - в релизе.#vite #bug
👍3
  Переделал прошлый плагин, сделал его удобней и опиньонейтед - полностью под конкретный случай 
vite-plugin-i18n-json-md - берет
В конфиге указывается входная директория, выходная и локали.
Переводы удобно держать в небольших файлах и переводить через
#vite #i18n #lib
i18nvite-plugin-i18n-json-md - берет
JSON* файлы из директории локали, конвертирует markdown, если он там есть, объединяет всё в один и выводит в стандартный для i18n json, либо же в json5 или js формате. По желанию - минификация.В конфиге указывается входная директория, выходная и локали.
import { i18nJsonMdPlugin } from "vite-plugin-i18n-json-md";
export default defineConfig({
  plugins: [
    vue(),
    i18nJsonMdPlugin({
      sourceDir: "src/app/locales",
      outputDir: "src/assets/i18n",
      locales: ["en", "ru", "gr"],
      mode: "dev",
      outputFormat: "json",
    }),
  ],Переводы удобно держать в небольших файлах и переводить через
AI - как целиком, так и автокомплитом. Добавил ключ с переводом в один файл, переходишь в аналогичный файл в другой локали - а он уже предлагает в нужном месте с нужным переводом вставить строку.  Молодец.#vite #i18n #lib
👍8
  Кому нравятся джетбрейновские аннотации имен параметров, у 
#vscode
VS Code есть расширение для этого - Inline Parameters for VSCode#vscode
🔥10😱2😐2💩1
  