Вышел отчет State of Frontend 2024
Кроме того, что
#stats #survey
Кроме того, что
JQuery
еще использует пятая часть опрошенных (а основная часть jq
разрабов просто игнорирует подобные опросы), особо ничего интересного#stats #survey
State of Frontend 2024
Based on surveys filled in by 6028 developers from 139 countries, the State of Frontend 2024 is supported by 23 expert commentaries about frontend trends and the future.
Статья от 20 ноября 2024 года
8 Reasons Why Vue JS is the Best Framework for Your Modern Projects
И пишут же вот такие вот контент-райтеры на дешевеньких LLM-ках вот такую вот хрень. Для компаний, которые, типа, предлагают услуги разработки на
И наверняка могут написать о чем угодно...
#facepalm
8 Reasons Why Vue JS is the Best Framework for Your Modern Projects
И пишут же вот такие вот контент-райтеры на дешевеньких LLM-ках вот такую вот хрень. Для компаний, которые, типа, предлагают услуги разработки на
Vue.js
И наверняка могут написать о чем угодно...
#facepalm
Когда-то модалки были довольно нетривиальным элементом, породившим кучу библиотек для их отображения (даже сам когда-то заэнпиэмил одну).
Сейчас
Вот пример модалки в 30 строк с оверлеем, закрытием по outside клику и клавише
Использование:
И всё. Не надо никаких композаблов, телепортов и мучений с позиционированием.
В комментариях будут стили для плавного (
#html #tip
Сейчас
HTML
<dialog>
делает это легко и непринужденноВот пример модалки в 30 строк с оверлеем, закрытием по outside клику и клавише
ESC
, с поддержкой доступности и других W3C
стандартов<script setup lang="ts">
import { ref } from "vue";
const dialog = ref(null);
function show() {
dialog.value.showModal();
}
function close() {
dialog.value.close();
}
function onClick($event) {
if ($event.target === dialog.value) {
dialog.value.close();
}
}
defineExpose({ show, close });
</script>
<template>
<dialog
ref="dialog"
role="textbox"
tabindex="0"
@mousedown="onClick"
>
<slot />
</dialog>
</template>
<style scoped></style>
Использование:
const holaModal = useTemplateRef("holaModal");
// holaModal.value.show();
...
<ModalDialog ref="holaModal">
<div>Hola!</div>
<button @click="holaModal.close()">
Close
</button>
</ModalDialog>
И всё. Не надо никаких композаблов, телепортов и мучений с позиционированием.
В комментариях будут стили для плавного (
fade in-out
) открытия и закрытия окна диалога и оверлея.#html #tip
В вышедшем недавно
Появились ассиметричные (?) модификаторы доступа свойств класса и переопределяемые геттеры/сеттеры (привет, js).
А также наконец, через 30 лет, удобный
#php
PHP 8.4
тем временем небольшая революцияПоявились ассиметричные (?) модификаторы доступа свойств класса и переопределяемые геттеры/сеттеры (привет, js).
А также наконец, через 30 лет, удобный
API
для парсинга HTML
документов.#php
Как приятно выйти на пенсию и заниматься только пет-проектами...
Предпоследний - Библеистика
Фронт в целом занял где-то треть работы. Технически было много интересных моментов, особенно на бэке (сбор данных, нормализация, структурирование, размещение, организация/оптимизация передачи их на фронт, индексация, морфологический поиск и т.п.). Был (и есть) даже вариант, что сайт может быть полностью статичным, без бэка, даже с поиском.
В итоге сайт "сотки" и близко к ним выбивает на
Репозиторий
#pet
Предпоследний - Библеистика
Фронт в целом занял где-то треть работы. Технически было много интересных моментов, особенно на бэке (сбор данных, нормализация, структурирование, размещение, организация/оптимизация передачи их на фронт, индексация, морфологический поиск и т.п.). Был (и есть) даже вариант, что сайт может быть полностью статичным, без бэка, даже с поиском.
В итоге сайт "сотки" и близко к ним выбивает на
PageSpeed
Репозиторий
#pet
Библеистика
Изучение Библии по контекстам с помощью Конкорданса Стронга
При рисовании графиков на фронтенде обычно используется два подхода -
Библиотеки для первого (
Если нужны несложные диаграммы, можно использовать
Специальная обертка для
#charts #svg
canvas
и svg
Библиотеки для первого (
chart.js
, uplot
) предлагают больший функционал и детализацию, библиотеки для второго (frappe-charts
, chartist
) - намного меньший размер пакета и заметно лучшую производительность в браузере.Если нужны несложные диаграммы, можно использовать
SVG
Специальная обертка для
Vue
не обязательна - все можно сделать в onMounted()
через useTemplateRef()
.#charts #svg
Недавно понадобилось сделать график. Вроде простой, но перебрал несколько библиотек и не нашел подходящей - чтобы маркеры горизонтальные были, тултип, расположение по оси Х как надо, растягиваемый и т.п.
В итоге решил сделать сам используя третий подход - на
Времени на создание рабочего варианта (первая картинка) ушло меньше, чем на поиски и пробы готовых графических библиотек (четырёх).
К сведению любителей не изобретать эти чертовы велосипеды.
Ну и дальше можно закастомизировать по красоте как нужно именно тебе.
#charts
В итоге решил сделать сам используя третий подход - на
HTML
и CSS
. Времени на создание рабочего варианта (первая картинка) ушло меньше, чем на поиски и пробы готовых графических библиотек (четырёх).
К сведению любителей не изобретать эти чертовы велосипеды.
Ну и дальше можно закастомизировать по красоте как нужно именно тебе.
#charts
Бесплатные, доступные, опенсорсные и self-hosted альтернативы платным приложениям и сервисам
Notion -> Appflowy
Zoom -> Jitsi
Jira -> Plane
Airtable -> NocoDB
Vercel -> Coolify
Heroku -> Dokku
Firebase -> Pocketbase/Appwrite/Convex/Supabase
Shopify -> Prestashop
GitHub -> GitLab
Slack -> Mattermost
Salesforce CRM -> ERPNext
Dropbox -> NextCloud
Mailchimp -> Mautic
Trello -> Wekan
Docusign -> Docuseal
Calendly -> Cal dot com
Datadog -> Prometheus
Google Analytics -> Matomo
Microsoft Office 365 -> LibreOffice
Asana -> OpenProject
#software
Notion -> Appflowy
Zoom -> Jitsi
Jira -> Plane
Airtable -> NocoDB
Vercel -> Coolify
Heroku -> Dokku
Firebase -> Pocketbase/Appwrite/Convex/Supabase
Shopify -> Prestashop
GitHub -> GitLab
Slack -> Mattermost
Salesforce CRM -> ERPNext
Dropbox -> NextCloud
Mailchimp -> Mautic
Trello -> Wekan
Docusign -> Docuseal
Calendly -> Cal dot com
Datadog -> Prometheus
Google Analytics -> Matomo
Microsoft Office 365 -> LibreOffice
Asana -> OpenProject
#software