На Vue FAQ небольшое изменение - новый подраздел Разработка / Архитектурные решения, в котором в том числе два новых вопрос-ответа: о Git submodules и макетах (layouts) вебприложения
#vuefaq
#vuefaq
Vue FAQ
Архитектурные решения | Vue FAQ
Vue FAQ - information about Vue.js and frontend development in general
После совместного решения с администрацией @vuejs_ru и @vuejs_jobs, создана Telegram группа для обсуждения Vue.js пет проектов, стартапов, поиска исполнителей, партнеров, менторов и всего остального околовьюшного, не проходящего в форматы вышеуказанных групп.
@vuejs_playground
Правила группы в закрепе.
#telegram #news #playground
@vuejs_playground
Правила группы в закрепе.
#telegram #news #playground
За всю историю JavaScript-a было множество попыток улучшить его, в первую очередь, путём надстройки, которая компилировалась/транспилировалась бы в него (как это делает TypeScript).
Вот первая десятка таких попыток на сегодняшний день
А вообще можно ознакомиться вот с этим списком - уже устаревшим, но всё же.
#javascript
Вот первая десятка таких попыток на сегодняшний день
А вообще можно ознакомиться вот с этим списком - уже устаревшим, но всё же.
#javascript
Stack Diary
Stack Diary is an online publication specializing in the latest Technology news, including Artificial Intelligence and Security. It was launched in 2021 by Alex Ivanovs.
ЦЕРН строит и эксплуатирует множество взаимосвязанных ускорителей частиц, в том числе Большой адронный коллайдер (БАК). Заряженные частицы направляются с помощью магнитных полей, и питание магнитов является ключевым элементом в работе ускорителей.
Секция программного обеспечения управления преобразователями (CCS) группы преобразователей электроэнергии (EPC) отвечает за разработку и эксплуатацию программного обеспечения, используемого для управления преобразователями электроэнергии, которые подают ток в магниты. В общей сложности группа отвечает за более чем 5000 преобразователей мощности.
Согласно данному документу для разработки фронтенда указанных приложений регламентируется использование Vue.js и её экосистемы.
#cern #usecase
Секция программного обеспечения управления преобразователями (CCS) группы преобразователей электроэнергии (EPC) отвечает за разработку и эксплуатацию программного обеспечения, используемого для управления преобразователями электроэнергии, которые подают ток в магниты. В общей сложности группа отвечает за более чем 5000 преобразователей мощности.
Согласно данному документу для разработки фронтенда указанных приложений регламентируется использование Vue.js и её экосистемы.
#cern #usecase
В некоторых Chromium-based браузерах появилась экспериментальная функция - Observable API. Объяснение.
Во Vue есть интеграция реализации Observables в виде
В TC39 есть старый Observable proposal, с другим синтаксисом, нежели выше.
jQuery через 18 лет продолжает оказывать влияние на развитие JavaScript и браузерного API
#js #jquery
// Filtering and mapping:
element
.on('click')
.filter((e) => e.target.matches('.foo'))
.map((e) => ({ x: e.clientX, y: e.clientY }))
.subscribe({ next: handleClickAtPoint });
// Automatic, declarative unsubscription via the takeUntil method:
element.on('mousemove')
.takeUntil(document.on('mouseup'))
.subscribe({next: e => … });
Во Vue есть интеграция реализации Observables в виде
RxJS
как vue-rx
В TC39 есть старый Observable proposal, с другим синтаксисом, нежели выше.
jQuery через 18 лет продолжает оказывать влияние на развитие JavaScript и браузерного API
#js #jquery
Хорошее сравнение возможностей
#fetch #axios #xhr
fetch()
и XMLHttpRequest
(который используется под капотом в Axios
)#fetch #axios #xhr
Openreplay
Ajax Battle: XMLHttpRequest vs the Fetch API
Which Ajax API is best for your application? In this article, we'll examine the pros and cons of the ancient XMLHttpRequest and its modern Fetch API equivalent.
Vue.js Nation конференция началась с часовой рекламы курсов и сертификаций (скоро появится по Nuxt и JS)
Затем Evan You отвечал на вопросы ведущей:
- Поддержка TypeScript во Vue 3 нормальная
- В феврале будет Vuenniversary - 10 лет Vue
- В 3.5 и 3.6 изменения будут небольшие, типа сomponent types и uuid для SSR
- Во второй половине года объявит о чем-то интересном (exciting)
- Если Signals будут стандартизованы, то Vue может использовать это
- Elk (клиент Mastodon) - пример крутого нетривиального приложения на Vue (Nuxt)
- Vueукрал был вдохновлен разными моментами в Angular 1, React, Knockout, Svelte
- Options API убирать не собираются
- Evan сомневается, что React идет куда-то туда с RSC
- Объяснил, почему не рекомендуется мутировать пропс-объект (не так явно видно, кто и как его меняет)
- VitePress 1.0.0 готов, но в конце декабря они погрязли в другой работе и не релизнулись. Скоро выпустят с фанфарами.
- AI сильно фронтенд не изменит в ближайшем времени. Пока это просто помощник
#evanyou #vuejsnation
Затем Evan You отвечал на вопросы ведущей:
- Поддержка TypeScript во Vue 3 нормальная
- В феврале будет Vuenniversary - 10 лет Vue
- В 3.5 и 3.6 изменения будут небольшие, типа сomponent types и uuid для SSR
- Во второй половине года объявит о чем-то интересном (exciting)
- Если Signals будут стандартизованы, то Vue может использовать это
- Elk (клиент Mastodon) - пример крутого нетривиального приложения на Vue (Nuxt)
- Vue
- Options API убирать не собираются
- Evan сомневается, что React идет куда-то туда с RSC
- Объяснил, почему не рекомендуется мутировать пропс-объект (не так явно видно, кто и как его меняет)
- VitePress 1.0.0 готов, но в конце декабря они погрязли в другой работе и не релизнулись. Скоро выпустят с фанфарами.
- AI сильно фронтенд не изменит в ближайшем времени. Пока это просто помощник
#evanyou #vuejsnation
Создатель Solid.js Ryan Carniato год назад написал статью об эволюции Signals в JavaScript (чья концепция лежит и в основе реактивности Vue.js)
#reactivity #solidjs
#reactivity #solidjs
DEV Community
The Evolution of Signals in JavaScript
There has been some buzz recently in the frontend world around the term "Signals". In seemingly short...
Scroll chaining - это когда скролишь в модалке или боковом меню, и при окончании скрола в ней начинает скролиться главное окно за модалкой.
Такое поведение можно отключить следующим правилом внутри элемента со скролом:
Еще один совет - при переходе по роутам часто заметно "прыгание" содержимого экрана, потому что главный скроллбар то появляется, то исчезает в зависимости от количества контента или открытия модального окна.
Можно заранее зарезервировать под него место, и тогда визуально дерганий не будет. Сам скроллбар будет появляться по необходимости. Правило ставить надо на
#tip #css #scroll
Такое поведение можно отключить следующим правилом внутри элемента со скролом:
overscroll-behavior-y: contain;
Еще один совет - при переходе по роутам часто заметно "прыгание" содержимого экрана, потому что главный скроллбар то появляется, то исчезает в зависимости от количества контента или открытия модального окна.
Можно заранее зарезервировать под него место, и тогда визуально дерганий не будет. Сам скроллбар будет появляться по необходимости. Правило ставить надо на
html
тэг в общем случае.scrollbar-gutter: stable;
#tip #css #scroll
Чтобы показать размер акулы, через которую современный Software development перепрыгнул, вот реальная история.
Пять лет назад надо было организовать JWT аутентификацию на сайте с PHP бэкендом. Взял
Через некоторое время делал JWT аутентификацию на другом проекте, заметил, что
Продолжение следует...
#laravel #dx #optimization #jwt
Пять лет назад надо было организовать JWT аутентификацию на сайте с PHP бэкендом. Взял
firebase/php-jwt
- продукт разработчиков Google, ноль зависимостей, один файл среднего размера который делал всю криптографию. Логика там простая - сгенерировать JWT токен при логине и проверить подпись токена при запросе с фронтенда. Реализация на бэке заняла строк 50 кода, на фронте - столько же.Через некоторое время делал JWT аутентификацию на другом проекте, заметил, что
firebase/php-jwt
переписался в ОО стиле - появились классы JWT
, Key
, ExpiredException
и т.д. Логика та же, размер общий чуть увеличился.Продолжение следует...
#laravel #dx #optimization #jwt
О сложности в SD (продолжение)
Недавно надо было поставить JWT аутентификацию на Ларавель. Посмотрел в интернете - делается через пакет
Залез внутрь пакета - там 65 php файлов. Глянул в зависимости в composer.json:
Ой-вей, так этот пакет даже JWT криптографией не занимается, это просто прослойка между Ларавелем и другими пакетами, которые уже делают что-то полезное. То есть, это аналог того кода в 50 строк, который я писал пять лет назад.
Вот этот пакет со всеми зависимостями делает, по сути, то же самое, что и
Складывается впечатление, что как минимум 90% кода пишется не для того, чтобы решить конкретную бизнес задачу, а по другой причине. Чтобы получить доход, но не прямо и конкретно, а в целом, "для отрасли". Для этого усложняются фреймворки и методики. То, что можно сделать просто, делается сложно. Это как таксист, который везет кругами неместного пассажира, чтобы накрутило на счетчик. Причем таксист сам не знает куда ехать - он ведёт по навигатору, он только это умеет. А навигатор ведет так, как в него заложил его хозяин.
Сфера software development усложняется и задурманивается, чтобы там нельзя было найти прямых путей. А те, кто помнит, как их находить, побыстрее вымерли.
#laravel #dx #optimization
Недавно надо было поставить JWT аутентификацию на Ларавель. Посмотрел в интернете - делается через пакет
tymon/jwt-auth
. Поставил, настроил.Залез внутрь пакета - там 65 php файлов. Глянул в зависимости в composer.json:
"require": {
"php": "^5.5.9|^7.0",
"illuminate/auth": "^5.2|^6|^7|^8",
"illuminate/contracts": "^5.2|^6|^7|^8",
"illuminate/http": "^5.2|^6|^7|^8",
"illuminate/support": "^5.2|^6|^7|^8",
"lcobucci/jwt": "<3.4",
"namshi/jose": "^7.0",
"nesbot/carbon": "^1.0|^2.0"
}
Ой-вей, так этот пакет даже JWT криптографией не занимается, это просто прослойка между Ларавелем и другими пакетами, которые уже делают что-то полезное. То есть, это аналог того кода в 50 строк, который я писал пять лет назад.
Вот этот пакет со всеми зависимостями делает, по сути, то же самое, что и
firebase/php-jwt
. То же самое с точки зрения бизнес-требований, технической стороны, безопасности.Складывается впечатление, что как минимум 90% кода пишется не для того, чтобы решить конкретную бизнес задачу, а по другой причине. Чтобы получить доход, но не прямо и конкретно, а в целом, "для отрасли". Для этого усложняются фреймворки и методики. То, что можно сделать просто, делается сложно. Это как таксист, который везет кругами неместного пассажира, чтобы накрутило на счетчик. Причем таксист сам не знает куда ехать - он ведёт по навигатору, он только это умеет. А навигатор ведет так, как в него заложил его хозяин.
Сфера software development усложняется и задурманивается, чтобы там нельзя было найти прямых путей. А те, кто помнит, как их находить, побыстрее вымерли.
#laravel #dx #optimization
Вчера был показан пример, как убрать дергание экрана из-за появляющегося-убирающегося скроллбара через
Частично это можно исправить через
Есть еще два варианта избежать "прыжков" страницы. Можно "накладывать" скроллбар на сайт при его появлении - именно это используется на проекте arty-crafty. Это делается через отрицательный отступ справа:
Также можно добавлять компенсационный отступ слева, тогда вся страница будет "сужаться" слева и справа равномерно при появлении скроллбара. Тут стабильность страницы будет зависеть от контента на нем (например, текст может перенестись) и нужно будет отдельно обработать элементы с
Понятно, что данные методы имеет смысл использовать только при разрешении экрана десктоп/ноутбук.
#tip #css #scroll
scrollbar-gutter: stable;
. Минус данного метода в том, что если бэкграунд сайта непрозрачный и "от края до края", то становится видна зарезервированная под скроллбар полоска.Частично это можно исправить через
scrollbar-gutter: stable both-edges;
- постоянные полоски будут слева и справа.Есть еще два варианта избежать "прыжков" страницы. Можно "накладывать" скроллбар на сайт при его появлении - именно это используется на проекте arty-crafty. Это делается через отрицательный отступ справа:
html {
overflow-x: hidden;
margin-right: calc(-1 * (100vw - 100%));
}
Также можно добавлять компенсационный отступ слева, тогда вся страница будет "сужаться" слева и справа равномерно при появлении скроллбара. Тут стабильность страницы будет зависеть от контента на нем (например, текст может перенестись) и нужно будет отдельно обработать элементы с
position: fixed
:html {
margin-left: calc(100vw - 100%);
margin-right: 0;
}
Понятно, что данные методы имеет смысл использовать только при разрешении экрана десктоп/ноутбук.
#tip #css #scroll
Telegram
Vue-FAQ
Scroll chaining - это когда скролишь в модалке или боковом меню, и при окончании скрола в ней начинает скролиться главное окно за модалкой.
Такое поведение можно отключить следующим правилом внутри элемента со скролом:
overscroll-behavior-y: contain;
Еще…
Такое поведение можно отключить следующим правилом внутри элемента со скролом:
overscroll-behavior-y: contain;
Еще…
Бывают случаи, когда надо явно перерендерить шаблон - например, он мог быть изменен сторонней нереактивной библиотекой. Самый правильный способ делать это - через key:
#tip
<script setup>
import { ref } from 'vue';
const componentKey = ref(0);
const forceRender = () => {
componentKey.value += 1;
};
</script>
<template>
<MyComponent :key="componentKey" />
<button @click="forceRender">Force re-render</button>
</template>
#tip