Лучшие практики обновления CSS-переменных :root с помощью JavaScript и Vue.js
1. Группировка обновлений
Если требуется обновить сразу несколько CSS-переменных, объединяйте их в одну операцию. Это снижает количество reflow в браузере и повышает производительность.
Изображение 1: пример с использованием Composition API и script setup. Обновление происходит через style.cssText, что позволяет применить несколько изменений за один проход.
2. Дебаунсинг обновлений
При обновлении CSS-переменных в ответ на частые события (например, resize) следует использовать debounce, чтобы избежать избыточных операций.
Изображение 2: вместо самописного debounce-функционала используется useDebounceFn из VueUse, что упрощает реализацию и повышает читаемость.
3. Ограничение области применения
По возможности ограничивайте область действия CSS-переменных конкретными компонентами, а не глобальным пространством. Это делает изменения более управляемыми и улучшает поддержку кода.
Иногда можно вовсе обойтись без явного объявления CSS-переменных.
Изображение 3: здесь используется реактивная переменная themeColor и директива v-bind() для привязки её значения к CSS-свойству напрямую.
👉 Гайды по JavaScript | дать буст
1. Группировка обновлений
Если требуется обновить сразу несколько CSS-переменных, объединяйте их в одну операцию. Это снижает количество reflow в браузере и повышает производительность.
Изображение 1: пример с использованием Composition API и script setup. Обновление происходит через style.cssText, что позволяет применить несколько изменений за один проход.
2. Дебаунсинг обновлений
При обновлении CSS-переменных в ответ на частые события (например, resize) следует использовать debounce, чтобы избежать избыточных операций.
Изображение 2: вместо самописного debounce-функционала используется useDebounceFn из VueUse, что упрощает реализацию и повышает читаемость.
3. Ограничение области применения
По возможности ограничивайте область действия CSS-переменных конкретными компонентами, а не глобальным пространством. Это делает изменения более управляемыми и улучшает поддержку кода.
Иногда можно вовсе обойтись без явного объявления CSS-переменных.
Изображение 3: здесь используется реактивная переменная themeColor и директива v-bind() для привязки её значения к CSS-свойству напрямую.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Оптимизируйте архитектуру и читаемость своего кода, придерживаясь следующих рекомендаций:
1. Отдавайте предпочтение функциональным компонентам, а не классовым
2. Давайте компонентам осмысленные имена
3. Выносите вспомогательные функции за пределы компонента
4. Выносите повторяющуюся разметку в конфигурационные объекты
5. Следите за размером компонентов — чем меньше, тем проще сопровождать
6. Деструктурируйте props при получении
7. Контролируйте количество props — их не должно быть слишком много
8. Используйте объекты вместо примитивов в props, чтобы группировать связанные значения
9. Избегайте вложенных тернарных операторов — сложные условия выносите в переменные
10. Выносите отображение списков в отдельные компоненты
11. Используйте хуки вместо HOC и render props
12. Переиспользуйте и инкапсулируйте логику в кастомных хуках
13. Выносите части JSX в отдельные функции рендера
14. Используйте Error Boundaries для обработки ошибок в UI
15. Используйте Suspense для управления асинхронной загрузкой компонентов или данных
https://thetshaped.dev/p/15-react-component-principles-for-better-design
👉 Гайды по JavaScript | дать буст
1. Отдавайте предпочтение функциональным компонентам, а не классовым
2. Давайте компонентам осмысленные имена
3. Выносите вспомогательные функции за пределы компонента
4. Выносите повторяющуюся разметку в конфигурационные объекты
5. Следите за размером компонентов — чем меньше, тем проще сопровождать
6. Деструктурируйте props при получении
7. Контролируйте количество props — их не должно быть слишком много
8. Используйте объекты вместо примитивов в props, чтобы группировать связанные значения
9. Избегайте вложенных тернарных операторов — сложные условия выносите в переменные
10. Выносите отображение списков в отдельные компоненты
11. Используйте хуки вместо HOC и render props
12. Переиспользуйте и инкапсулируйте логику в кастомных хуках
13. Выносите части JSX в отдельные функции рендера
14. Используйте Error Boundaries для обработки ошибок в UI
15. Используйте Suspense для управления асинхронной загрузкой компонентов или данных
https://thetshaped.dev/p/15-react-component-principles-for-better-design
Please open Telegram to view this post
VIEW IN TELEGRAM
thetshaped.dev
15 React Component Principles & Best Practices for Better Software Architecture & Design
The conscious road to more scalable designs of React applications.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Совет дня:
В nuxt_js ты можешь указать, какие composables нужно удалить при tree shaking из клиентского или серверного бандла для повышения производительности.
Это настраивается в файле nuxt.config.ts в секции
👉 Гайды по JavaScript | дать буст
В nuxt_js ты можешь указать, какие composables нужно удалить при tree shaking из клиентского или серверного бандла для повышения производительности.
Это настраивается в файле nuxt.config.ts в секции
optimization.treeShake.composables
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Операционная система Linux лежит в основе большинства серверов по всему миру.
Так что это мощный инструмент, который стоит изучить. Этот курс поможет тебе освоить основы Linux.
Ты научишься управлять различными типами систем и устранять неполадки, а также закрепишь знания на практике в лабораторных заданиях.
https://freecodecamp.org/news/free-linux-crash-course-with-labs/
👉 Гайды по JavaScript | дать буст
Так что это мощный инструмент, который стоит изучить. Этот курс поможет тебе освоить основы Linux.
Ты научишься управлять различными типами систем и устранять неполадки, а также закрепишь знания на практике в лабораторных заданиях.
https://freecodecamp.org/news/free-linux-crash-course-with-labs/
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Жара в IT! Теперь популярные языки программирования можно легко выучить по гайдам в картинках
Бесплатные инструменты, полезные ресурсы, а также советы и задачки. Выбирай нужное направление и учись не напрягаясь:
👩💻 Linux Ninja
🖥 CodHub | Курсы IT
📱 Python | Программирование
😷 Hacking | Кибербезопасность
⚙️ Webdev | Backend & Frontend
🖥 Программирование по мемам
Бесплатные инструменты, полезные ресурсы, а также советы и задачки. Выбирай нужное направление и учись не напрягаясь:
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
Совет по JavaScript
Используй
👉 Гайды по JavaScript | дать буст
Используй
String.raw
с шаблонными литералами, чтобы выводить необработанные строки — экранирование при этом игнорируется.Please open Telegram to view this post
VIEW IN TELEGRAM