Vue-FAQ
924 subscribers
562 photos
90 videos
557 links
Канал сайта https://vue-faq.org
Информация о Vue.js, фронтенд разработке и не только

Contacts: @RuslanMakarov
Download Telegram
Технические детали проекта выше

ark-ui в некоторых местах глючит, но как UI библиотека понравилась, буду использовать.

Для графика (chart) модели из TS переделал на классы (без реактивности внутри), стало намного удобней

AI очень помогает делать перевод сайта сразу на нескольких языках одновременно с кодингом

Используются разные LLM для парсинга файлов и аналитических отчетов (подешевле и подороже)

Кнопка справа внизу (FAB) идет как волшебная палочка - в ней разные действия в зависимости от страницы и контекста.
Её задача - сделать удобный UX, чтобы пользователь не бегал по всему экрану пальцем

PWA, variable fonts, JSON-RPC, JSON5

#lissa #pet #arkui
Есть строгие мальчики, есть ветренные девочки, и есть TypeScript - трансгендер с пронаунсом "AS"

#ts #lang
Если вы используете Google Analytics то Google Pagespeed часто ругается сам на себя - gtag.js размером в 100Кб+ снижает показатели сайта.

Можно сделать следующий финт:

 <script async src="https://www.googletagmanager.com/gtag/js?id=G-0SGZMMY7Y4"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());

gtag('config', 'G-0SGZMMY7Y4');
</script>


меняете на

<script>
window.addEventListener('load', function() {
setTimeout(() => {
var script = document.createElement('script');
script.src = 'https://www.googletagmanager.com/gtag/js?id=G-0SGZMMY7Y4';
script.async = true;
document.head.appendChild(script);

window.dataLayer = window.dataLayer || [];
function gtag(){ dataLayer.push(arguments); }
gtag('js', new Date());
gtag('config', 'G-0SGZMMY7Y4');
}, 3000);
});
</script>
});


Ушедшие в первые 3 секунды посетители считаться не будут, но они, обычно, и не нужны.

#google #seo
Как отключить scroll страницы, когда показываешь модальный диалог через <dialog>?

body:has(dialog[open]) {
overflow: hidden;
}


Размыть фон/overlay?

dialog::backdrop {
backdrop-filter: blur(2px);
}


#css #tip #scroll
Media is too big
VIEW IN TELEGRAM
Пятничный оффтоп

Новые власти США рассекречивают документы вивесектария предыдущих правителей

Байденовская администрация в рамках DEI потратила $10 миллионов на создание и изучение трансгендерных мышей, крыс и обезьянок

В частности, $2.5 миллиона ушли на попытки забеременить трансгендерных мышей (отрезав им предварительно гениталии, что-то пересадив и накачав гормонами)

Содом и Гоморра. Помянем бедных испытуемых...

#offtop #pets
Rolldown-Vite готовится

Эван обещал в течение 2-3 месяцев

#rolldown #vite
Если делаете два близких приложения (например, клиентский фронтенд и админку) , и хотите расшарить какие-то компоненты и ресурсы, то есть несколько вариантов

1. Монорепозиторий. Оба проекта идут как пакеты и общие пакеты тоже отдельно. На любителя.

2. Выделить общее в отдельный NPM пакет и подключать его. Неудобно возиться с версиями и апдейтом.

3. Делать в одном проекте, настроить на две точки входа. Собирать Vite будет в одну кучу с двумя html файлами входа. Подразумевается, что так удобно работать на одном сайте с двумя мини-приложениями

4. Два отдельных vite.config.ts файла, два html, два App.vue и роутера. В package.json в скриптах прописываете свой Vite конфиг и копирование своего html в index.html. Запускается и собирается каждый как отдельный проект, в коде всё общее.

4. Git submodules. Отдельный проект подключается как поддиректория в твой (общие компоненты).

#tip
Написал статью про Model Context Protocol

Грубо говоря, это попытка выработать стандартный API для соединения LLM и инструментов - любых приложений, делающих что-то специфичное.

На двух последних проектах окунулся в работу с AI и эта штука (MCP) очень сильно может помочь в разработке приложений, использующих LLM. Чтобы не выклянчивать у чатбота что-то в диалоге, а использовать его для управления специализированными инструментами и получать на порядок более качественный результат.

#ai #article
Иногда придумывают действительно что-то полезное...

#gaming
Эван тут запустил опрос. Задумал, поди, бэкенд фреймворк написать от скуки.

Хочется сказать: Ю, ты, конечно, красавчек. Но, во-первых, js на бэке - это говно. Во-вторых, брать лучшие практики из Ларавеля, это как брать уроки танцев у стриптизерши из припортового бара. И, в-третьих, - дай нам Rolldown, Vapor и пофикси, наконец, этот гребаный Volar, а потом делай что хочешь.

P.S. Год назад на бэке отошел от любых фреймворков, абсолютно счастлив и жалею, что не сделал этого раньше

#backend #evanyou #laravel
В экспериментальных версиях браузеров уже появляется реализация Temporal - официальной замены Date в JavaScript

const dateTime = Temporal.Now.plainDateTimeISO();
console.log(dateTime); // e.g.: 2025-01-22T11:46:36.144

// 1851222399924 is our timestamp
const launch = Temporal.Instant.fromEpochMilliseconds(1851222399924);
const now = Temporal.Now.instant();
const duration = now.until(launch, { smallestUnit: "hour" });
console.log(`It will be ${duration.toLocaleString("en-US")} until the launch`);
// "It will be 31,600 hr until the launch" <- @js-temporal/polyfill
// "It will be PT31600H until the launch" <- Firefox Nightly


Уже доступен полифилл - @js-temporal/polyfill

#js #date
Подписчик спросил, как используется AI в моих проектах

В последнем LLM используется в трех местах:

1. Преобразование полученного из PDF утилитой pdf2text текста в структурированный JSON
2. Пользователь может вводить вручную данные в формы - например, пройденное лечение, а может просто надиктовать рецепт. AI преобразует снова в данные определенного формата
3. Генерация аналитических отчетов на основе разных данных (анализы, лечение, записи журнала)

В 1 и 2 AI преобразует неструктурированную информацию в структурированную - это она очень хорошо умеет.
В 3 результат зависит сильно от человека (составленного им промпта)

В проекте до этого была задача в ходе диалога получить от пользователя некую информацию. Использовал конечные автоматы на бэке для управления диалогом.

Вещи типа 1 и 2 встречаются во многих приложениях, и AI тут может сильно улучшить UX

Ну и в последние недели в Cursor-е появились MCP сервера, я писал о них (но не пробовал), которые делают еще один качественный шажок в использовании AI

#ai
Маленький кубик - волшебная иконка в Cursor при поиске

Открывает все найденные файлы в Composer и можно сразу с ними что-то делать / использовать как контекст

#ai #cursor #tip
MDN фигню не скажет

Replacement значит replacement

#jquery
Немного трендов в AI

Anthropic сильно поднялась на своей Sonnet 3.5, которая и в Cursor-е остается лучшей LLM

#ai