Как выяснилось, за последний год в мире
Вышел в open source
По функционалу с большим отрывом лидирует
Мир устал от жирного, жадного и неповоротливого online-only
#hoppscotch #yaak #bruno #api #tauri #postman
API
клиентов случилась почти что революцияВышел в open source
Yaak
(React
, Tauri
), релизнулся и активно развивается вполне достойный Bruno
(Next.js
, Tauri
) и наконец-то появилась десктопная версия Hoppscotch
(Vue 3
, Tauri
). Hoppscotch
пока в альфа версии, но вполне хорошо работает и решены проблемы с прокси для запросов. Дистрибутив занимает всего 10Мб (у Yaak
120Mb, у Bruno
- 40Mb). На скриншоте, сколько они отъедают памяти в холостом режиме. Ну и просто какой-то бенефис Tauri
.Yaak
и Bruno
полностью оффлайновые, поэтому их UI
работает очень быстро, Hoppscotch
синхронизирует данные в облаке, поэтому есть небольшая задержка, но в целом хорошо.По функционалу с большим отрывом лидирует
Hoppscotch
, за ним - Bruno
Мир устал от жирного, жадного и неповоротливого online-only
Postman
-a. Попробуйте эти клиенты и забудьте Postman
как страшный сон.#hoppscotch #yaak #bruno #api #tauri #postman
Поделитесь ссылками на ресурсы, где можно черпать вдохновение для дизайна сайта
Допустим, есть уже костяк сайта - с хедером, сайдбаром, какими-то элементами. Хочется его одеть во что-нибудь красивое и готовое.
Умеренное, гармоничное, с продуманной цветовой палитрой, типографикой, размерами по золотому сечению и всем остальным. Чтобы было сделано профессионалом, короче.
#webdesign
Допустим, есть уже костяк сайта - с хедером, сайдбаром, какими-то элементами. Хочется его одеть во что-нибудь красивое и готовое.
Умеренное, гармоничное, с продуманной цветовой палитрой, типографикой, размерами по золотому сечению и всем остальным. Чтобы было сделано профессионалом, короче.
awwwards
и подобные ресурсы превратились в сайто-свалку, где что-то приличное уже не найти#webdesign
В
Одна - основная, вторая (не
Также в ней можно экспортировать
#tip
SFC
можно иметь две script
секции Одна - основная, вторая (не
setup
) - например, для экспорта TypeScript
типов:<!-- UserProfileComponent -->
<script lang="ts">
export interface UserProfileProps{
username: string,
// etc...
}
</script>
<script setup lang="ts">
defineProps<UserProfileProps>()
</script>
Также в ней можно экспортировать
provide/inject
ключи.#tip
Вы задумывались, почему c
Ведь
Этот факт обычно используется сторонниками
На самом деле, это продуманное поведение, дающее больший и более гибкий функционал.
Это позволяет, например, получив заголовки не ожидая всего ответа решить - нужен тебе этот ресурс или нет, и за-абортить запрос.
Или определить, какой контент принимать после получения заголовков.
#fetch #axios
fetch
-ем нужно два раза ждать?const response = await fetch(url);
const data = await response.json();
Ведь
JSON.parse()
- синхронныйЭтот факт обычно используется сторонниками
axios
в свою пользу.На самом деле, это продуманное поведение, дающее больший и более гибкий функционал.
fetch()
резолвит свой промис как только получит все заголовки (HTTP headers
), а непосредственно body
ждет уже response.json()
Это позволяет, например, получив заголовки не ожидая всего ответа решить - нужен тебе этот ресурс или нет, и за-абортить запрос.
Или определить, какой контент принимать после получения заголовков.
#fetch #axios
Ликбез от @vuejs_ru и
Ref:
- позволяет удобно и просто перезаписать переменную целиком:
- может быть использован с примитивами (string, number, boolean и т.д.);
- представляет из себя геттер и сеттер в случае с примитивами (без Proxy);
- в случае с объектами просто вызывает
- обязательно имеет контейнер, в котором хранит значение (.value), о котором нельзя забывать.
Reactive:
- работает только с непримитивными значениями (объекты и массивы);
- использует Proxy и глубокую реактивность по умолчанию;
- не может быть просто перезаписан целиком по аналогии с
- удобен для группировки связанных значений в общий объект (чтобы не создавать отдельные независимые переменные для связанного состояния);
- поддерживает ref unwrapping (https://vuejs.org/guide/essentials/reactivity-fundamentals.html#additional-ref-unwrapping-details), а значит в него можно положить другие ref’ы, и они раскроются (не нужно будет писать лишний .value) внутри объекта;
- иногда может быть удобнее в типизации - для него не нужно использовать отдельный тип
В общем случае можно просто использовать
Полезные ссылки:
1. https://vuejs.org/guide/essentials/reactivity-fundamentals.html
2. https://vuejs.org/guide/extras/reactivity-in-depth.html#how-reactivity-works-in-vue
3. https://stackoverflow.com/questions/61452458/ref-vs-reactive-in-vue-3/65262638#65262638
Artyom Tuchkov
ref
и reactive
позволяют создать реактивную переменную, но имеют некоторые отличия:Ref:
- позволяет удобно и просто перезаписать переменную целиком:
example.value = 123
, при этом сохранив реактивность;- может быть использован с примитивами (string, number, boolean и т.д.);
- представляет из себя геттер и сеттер в случае с примитивами (без Proxy);
- в случае с объектами просто вызывает
reactive
и передает обработку ему;- обязательно имеет контейнер, в котором хранит значение (.value), о котором нельзя забывать.
Reactive:
- работает только с непримитивными значениями (объекты и массивы);
- использует Proxy и глубокую реактивность по умолчанию;
- не может быть просто перезаписан целиком по аналогии с
ref
, потому что потеряется реактивность;- удобен для группировки связанных значений в общий объект (чтобы не создавать отдельные независимые переменные для связанного состояния);
- поддерживает ref unwrapping (https://vuejs.org/guide/essentials/reactivity-fundamentals.html#additional-ref-unwrapping-details), а значит в него можно положить другие ref’ы, и они раскроются (не нужно будет писать лишний .value) внутри объекта;
- иногда может быть удобнее в типизации - для него не нужно использовать отдельный тип
MaybeRef<T>
, как в случае с обычным ref
(например, если хочется иметь объект, который может быть как реактивным, так и нет, то типизация и работа с reactive
будет в целом выглядеть удобнее).В общем случае можно просто использовать
ref
, если это кажется проще, но про reactive
тоже полезно помнить, потому что его особенности могут рано или поздно пригодиться.Полезные ссылки:
1. https://vuejs.org/guide/essentials/reactivity-fundamentals.html
2. https://vuejs.org/guide/extras/reactivity-in-depth.html#how-reactivity-works-in-vue
3. https://stackoverflow.com/questions/61452458/ref-vs-reactive-in-vue-3/65262638#65262638
vuejs.org
Vue.js
Vue.js - The Progressive JavaScript Framework
PWABuilder безо всяких капаситоров и других сложных механизмов может обернуть ваше
Но, соответственно, и функционала меньше.
#pwa
PWA
в webview
для Apple Store
, Google Play
и других магазинов нативных приложений.Но, соответственно, и функционала меньше.
#pwa
Эван тут взбудоражиол всех в X:
> Some big news next week... 🥁 Что будет?
> Some big news next week... 🥁 Что будет?
Anonymous Poll
22%
Релиз Rolldown
20%
Экспериментальное добавление Rolldown в Vite
11%
Vapor
13%
Vue 4
7%
Options API deprecation
12%
Кто-то покупает Vue
9%
Эван ожидает рождения третьего ребенка
6%
Другое
Что такое дизайн-система?
- Цветовые палитры: Основные и дополнительные цвета, используемые в интерфейсе.
- Типографика: Шрифты, размеры, межстрочные интервалы и другие параметры текста.
- Компоненты: Готовые элементы интерфейса (кнопки, формы, карточки и т.д.), которые можно повторно использовать.
- Отступы и размеры: Стандартные значения для отступов, размеров элементов и других пространственных характеристик.
- Использование CSS свойств
Шаги по созданию дизайн-системы
1. Определение базовых стилей:
- Нормализация: Использование нормализатора (например, Normalize.css) для устранения различий в стилях браузеров.
- Переменные: Объявление основных цветов, шрифтов, отступов и других значений в виде CSS переменных.
- Базовые стили: Определение базовых стилей для элементов (например, body, h1, p).
2. Создание компонентов:
- Визуальные компоненты: Создание компонентов, которые отображают пользовательский интерфейс (кнопки, формы, карточки и т.д.).
- Абстрактные компоненты: Создание компонентов, которые не имеют визуального представления, но содержат логику и стили (например, компоненты для работы с цветом, типографикой).
Ключевые моменты для запоминания:
- Постоянство: Придерживайтесь единого стиля во всех компонентах.
- Модульность: Разбивайте дизайн-систему на небольшие, независимые компоненты.
- Гибкость: Создавайте компоненты, которые можно адаптировать под различные сценарии использования.
- Тестирование: Регулярно тестируйте дизайн-систему, чтобы убедиться в ее корректной работе.
Пример:
#webdesign #css
Дизайн-система
— это набор правил и компонентов, которые обеспечивают согласованность и масштабируемость интерфейса. Она включает в себя:- Цветовые палитры: Основные и дополнительные цвета, используемые в интерфейсе.
- Типографика: Шрифты, размеры, межстрочные интервалы и другие параметры текста.
- Компоненты: Готовые элементы интерфейса (кнопки, формы, карточки и т.д.), которые можно повторно использовать.
- Отступы и размеры: Стандартные значения для отступов, размеров элементов и других пространственных характеристик.
- Использование CSS свойств
Шаги по созданию дизайн-системы
1. Определение базовых стилей:
- Нормализация: Использование нормализатора (например, Normalize.css) для устранения различий в стилях браузеров.
- Переменные: Объявление основных цветов, шрифтов, отступов и других значений в виде CSS переменных.
- Базовые стили: Определение базовых стилей для элементов (например, body, h1, p).
2. Создание компонентов:
- Визуальные компоненты: Создание компонентов, которые отображают пользовательский интерфейс (кнопки, формы, карточки и т.д.).
- Абстрактные компоненты: Создание компонентов, которые не имеют визуального представления, но содержат логику и стили (например, компоненты для работы с цветом, типографикой).
Ключевые моменты для запоминания:
- Постоянство: Придерживайтесь единого стиля во всех компонентах.
- Модульность: Разбивайте дизайн-систему на небольшие, независимые компоненты.
- Гибкость: Создавайте компоненты, которые можно адаптировать под различные сценарии использования.
- Тестирование: Регулярно тестируйте дизайн-систему, чтобы убедиться в ее корректной работе.
Пример:
/* variables.css */
:root {
--primary-color: #007bff;
--font-family: sans-serif;
}
/* BaseButton.vue */
.button {
background-color: var(--primary-color);
padding: 1rem 2rem;
cursor: pointer;
...
}
#webdesign #css
Вышел Deno 2.0
- Аналогично
- Отличительная особенность - работа с
- Заявляется о полной обратной совместимости с
- Поддерживает частные
- Хорошая поддержка
- Интегрировал в себя много утилит типа
- Можно использовать с
- Имеет свой веб фреймворк, основанный на
В общем, далеко не киллер и довольно спорные решения, но конкуренция всегда полезна
Ну и
#deno #nodejs #jsr
RC
, js/ts runtime environment
и движок. Развивает проект бывший создатель Node.js
Ryan Dahl
- Аналогично
Bun
, является комбайном, содержащий линтер, тестер, форматер, компайлер и бандлер.- Отличительная особенность - работа с
TS
напрямую в рантайме, а не компиляция в js
c удалением всех типов как делает Node.js
- Заявляется о полной обратной совместимости с
NPM
пакетами и Node.js
, хотя развивают свой репозиторий typescript
-ных библиотек JSR.- Поддерживает частные
npm
репозитории.- Хорошая поддержка
Web API
- Интегрировал в себя много утилит типа
lodash
(как и Bun
) - Можно использовать с
Vue
проектами- Имеет свой веб фреймворк, основанный на
Preact
и со вшитым Tailwind
В общем, далеко не киллер и довольно спорные решения, но конкуренция всегда полезна
Ну и
De-no
<= No-de
если что.#deno #nodejs #jsr
Deno
Deno, the next-generation JavaScript runtime
Deno features improved security, performance, and developer experience compared to its predecessor. It's a great time to upgrade your Node.js project to run on Deno.
VueSchool
не останавливается в попытках монетизации Vue.js
паствы и добавила к себе еще и JavaScript
сертификацию#certification
Вслед за Amazon и
#ai #microsoft
Microsoft
выкупила на 20 лет атомную электростанцию, чтобы питать ей свои AI
ресурсы.#ai #microsoft