Ответ
Нативный компонентный подход — это создание UI-компонентов с использованием чистого JavaScript, HTML и CSS без фреймворков (React, Vue и т.д.). Компоненты строятся как самостоятельные, переиспользуемые блоки с инкапсулированной логикой и стилями.
Пример нативного компонента (кнопка):
<button class="custom-button">Click me</button>
<style>
.custom-button {
padding: 10px 20px;
background: #4CAF50;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
}
</style>
<script>
document.querySelector('.custom-button').addEventListener('click', () => {
alert('Button clicked!');
});
</script>
Плюсы:
- Полный контроль над реализацией
- Нет оверхеда от фреймворков
- Понятная DOM-структура
Минусы:
- Нет реактивности "из коробки"
- Больше ручной работы с DOM
- Сложнее масштабировать
Используется в legacy-проектах, микроприложениях или когда важна минимальная зависимость.
Ответ 18+ 🔞
Да ты посмотри, что за дичь творят эти фроненды! Сидят, блядь, на своих фреймворках, как мартышлюшки на лианах, и уже забыли, как выглядит чистый HTML! А ведь есть, сука, нативный компонентный подход! Это когда ты, как настоящий шаман, лепишь UI-компоненты из голого JavaScript, HTML и CSS. Без этих ваших React, Vue и прочей ёбаной магии, которая потом в бандл гигабайтный превращается!
Вот смотри, как это выглядит, элементарно же, блядь:
<button class="custom-button">Click me</button>
<style>
.custom-button {
padding: 10px 20px;
background: #4CAF50;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
}
</style>
<script>
document.querySelector('.custom-button').addEventListener('click', () => {
alert('Button clicked!');
});
</script>
Видишь? Никаких хуёвых теней, никаких виртуальных DOM-ов, которые сами не знают, куда рендерятся. Всё на виду, как на ладони, в рот меня чих-пых!
И плюсы, конечно, овердохуищные:
- Полный контроль. Ты — царь, бог и воинский начальник в своём коде. Хочешь — так, хочешь — эдак. Никакой фреймворк тебе не скажет: "а вот тут, мудила, у нас ограничение".
- Нет оверхеда. Никаких лишних килобайт, которые тащат за собой эти ваши
node_modules, весящие, как чугунный мост. Только то, что ты написал своими кривыми ручками. - Понятная структура. Открыл DevTools — и сразу видно, где что лежит, а не гадай, в каком из тридцати
div'ов с хуёвыми классами спряталась твоя кнопка.
Но, ёпта, и минусы есть, куда ж без них:
- Реактивности ноль. Хочешь, чтобы данные сами обновлялись? А хуй там! Всё руками, блядь, как в каменном веке. Написал
innerHTML— и молодец, сиди теперь отслеживай каждое изменение. - Ручная работа с DOM. Приготовься писать тонны кода для простейших операций. Добавил элемент? Не забудь его потом и удалить, а то память потечёт, как сито.
- Масштабирование — пиздец. Когда проект разрастётся, этот зоопарк из скриптов и стилей превратится в такую свалку, что сам чёрт ногу сломит. Поддерживать это — терпения ебать ноль.
Где это ещё живо? Да в legacy-проектах, которые как динозавры, блядь, до сих пор ходят. Или в микроприложениях, где каждый килобайт на счету. Или когда у тебя начальник — конченый скряга и говорит: "Зачем нам фреймворк? И так сойдёт!".
В общем, инструмент как инструмент. Иногда — самое то, а иногда — хуй в пальто. Смотря что строить собрался.