Jump to content
  • 0

Почему ванильный JS еще кому-то нужен?


vladmih
 Share

Question

Я в JS не совсем профессионал, но почему ванильный настолько неудобный и громоздкий именно с манипуляцией DOM???
Благо есть Jquery!!!

Я не понимаю этих мазахистов которые пишут все эти getelemen(s)By... Ведь что выбрать ведь чтоб выбрать несколько тегов, такие бубны приходится писать!!!
А если подумать о создании нодов, так это вообще! Создать элемент, впихнуть в него еще какой-то, потом вставить в него HTML!!!

Это треш!!!

Так вот те кто пишут на ванили, у них самооценка завышена или есть какие-то плюсы?

Да там производительность выше, не это в тысячных долях секунды, размер исходника?


 

  • Like 1
Link to comment
Share on other sites

Recommended Posts

  • 0

На самом деле никто не пишет на чистом JS :) Но это не означает, что его не надо знать. DOMом мир не ограничен.

Понятно что он не ограничен!

Ну если грубо говорить о fron-end как таковом, основная масса работы и есть работа с DOM, ну еще какая-то часть с самим браузером.

Я ошибаюсь?

Link to comment
Share on other sites

  • 0

 

Благо есть Jquery!!!
 

Никогда не задумывались на чем написан jQuery?

 

 

Я не понимаю этих мазахистов которые пишут все эти getelemen(s)By
 

querySelector() / querySelectorAll()

 

var tag = document.querySelector('p > a')

tag.onclick = fun(){}

или

$('p > a').click(fun(){})

Разница же ощутимая?

А что касается аппенда? Еще хуже! Я вообще не понимаю зачем в js отдельный метод для добавления строк и ячеек?

Почему нет такого метода для вставки других тегов?

Я прекрасно понимаю что jquery это фрейм-ворк для языка JS...

 

Link to comment
Share on other sites

  • 0
querySelector() / querySelectorAll()

На самом деле они даже рядом не стоят с Sizzle от жиквери :) 

 

Ну если грубо говорить о fron-end как таковом, основная масса работы и есть работа с DOM, ну еще какая-то часть с самим браузером.
 

Это да. Кто ж спорит. Однако без знаний чистого JS такие как вы всё время плодят в интернетах вопросы типа "Помогите настроить плагин", "Почему не работает" и т.п.


Почему нет такого метода для вставки других тегов?

А как же .innerHTML() :) 

Link to comment
Share on other sites

  • 0
На самом деле они даже рядом не стоят с Sizzle от жиквери  
 

Ничего не мешает писать свои же аналогичные функции. Обычно так и делается.

Sizzle аналогично написан на javascript и использует тот же querySelector. Так для меня вопрос стоит не в использовании vanila js, а использовать ли готовые библиотеки/наборы функций или писать свои. Т.к. и jQuery и Sizzle не отдельные ЯП, а всё тот же javascript.

Link to comment
Share on other sites

  • 0

Так вот те кто пишут на ванили, у них самооценка завышена или есть какие-то плюсы?

пишу на ванили или на jquery примерно раз через раз.

Естественно, за исключением случаев, когда пишу например на реакте. Там просто подход другой, работа с dom в корне иначе построена.

 

В принципе да, соглашусь с вами, манипуляции с dom в jquery сделаны даже намного удобнее, чем querySelector. Но порой бывает просто лениво подключать в проект ещё одну библиотеку.

Или выглядит нецелесообразным подключение целой библиотеки ради пары мелочей.

 

Так что кроме ваших двух вариантов есть и ещё другие :)

вообще в принципе не понимаю когда люди ругают язык и при этом хвалят библиотеку/фреймворк на нем написаный. глупость.

а это вы зря. Как раз в случае с JS/jQuery то вполне обоснованно.

Link to comment
Share on other sites

  • 0
а это вы зря. Как раз в случае с JS/jQuery то вполне обоснованно.

 

ответ уже дал Veseloff , да и ты сам знаешь что такое тот же реакт и глупо говорить что язык ванильный, тем более когда автор темы воспринимает его сугубо как язык для работы с DOM =) Суть фреймворков и библиотек упростить разработку, так почему с js должно быть по другому?

Link to comment
Share on other sites

  • 0

Я в JS не совсем профессионал, но почему ванильный настолько неудобный и громоздкий именно с манипуляцией DOM???

Благо есть Jquery!!!

Я не понимаю этих мазахистов которые пишут все эти getelemen(s)By... Ведь что выбрать ведь чтоб выбрать несколько тегов, такие бубны приходится писать!!!

А если подумать о создании нодов, так это вообще! Создать элемент, впихнуть в него еще какой-то, потом вставить в него HTML!!!

Это треш!!!

Так вот те кто пишут на ванили, у них самооценка завышена или есть какие-то плюсы?

Да там производительность выше, не это в тысячных долях секунды, размер исходника?

Чувак, почитай вот эти статьи (кстати, ожидаются ещё статьи, но попозже), думаю вопрос твой отпадёт сам по себе :)

  • Like 1
Link to comment
Share on other sites

  • 0
Конечно ощутимая. В первом случае 2 строки кода во втором несколько тысяч.

В первом случае код допускает навесить лишь один обработчик клика и лишь на первую ссылку :)

Во втором случае код навешивает обработчик клика на все ссылки, при этом не затирая остальные обработчики.

 

Ну и вообще жиквери сейчас модульный, теперь можно собрать именно тот билд, который именно тебе нужен. Так что про несколько тысяч строк сильное преувеличение.

Link to comment
Share on other sites

  • 0

 Верно, хотя сути не меняет. То есть пишут на чистом, когда требуется небольшой функционал, плюс есть библиотеки добавляющие какие то отдельные функции. Я думаю грамотный  фронтенд должен быть всесторонне развит а не быть зависимым от какого то одного фреймворка. 

Link to comment
Share on other sites

  • 0

Я просто считаю, что лучше жиквери пока человечество ничего не придумало (это если мы не пишем на всяких ангулярах с реактами). Не могу придумать ни одного минуса у жиквери, использование его более чем оправдано. Но, как я и написал выше, это не отменяет того, что язык знать надо.

  • Like 1
Link to comment
Share on other sites

  • 0

ни одного минуса у жиквери

но если jquery используется только для какой нибудь фигни, типа скрыть что нибудь на сайте:

$('#id').hide();

 

То зачем тянуть с собой библиотеку больше 100 кб?

Если можно написать как то так : document.getElementById('id').style.display="none";

 и выиграть на скорости загрузки сайта ,особенно на мобильных.

  • Like 1
Link to comment
Share on other sites

  • 0
а это вы зря. Как раз в случае с JS/jQuery то вполне обоснованно.

не совсем... JQ только упрощает работу с несколькими ответвлениями JS ну и естественно тонны плагинов под него...

а попробуйте поработать с жукверри, например с канвой))) я подожду 

опять же нужно будет для простоты другие библиотеки искать. jQ это jQ и использовать его можно там где это можно )).  

другие ворки/библиотеки там где нужны они....  

 

а вообще, для сравнения и понимания глубины вопроса, можно подумать над тем, для чего вообще разрабатываются языки высшего уровня, чтобы было? нет... для удобства 

  • Like 1
Link to comment
Share on other sites

  • 0

Э, нет, всё не так.

Речь-то не об этом. Скорее о том, что jQuery красив, удобен, логичен, строен. Если чего-то не знаешь, можно догадаться.

Этого не сказать о самом js.

Я даже не говорю о дебрях типов и нюансах приведения типов. Не говорю о весьма специфических подходах к областям видимости. Не говорю о классах, которые не классы на самом деле.

Просто он какой-то … с лоскутным одеялом что ли сравнить? Не целостный. Надёргано отовсюду по мелочи.

Символ => для функции и точка с запятой в конце строки могут быть в одном языке?

Фигурные скобки в этом языке для чего? Правильно, для объектов, форматирования строки, импортов, деструктуризации и блоков кода.

А квадратные? Верно, для генерации ключа в объекте, для массивов, опять же деструктуризации.

А работа с массивами? В духе пхп, отдельные функции. Некоторые возвращают новый массив, некоторые колдуют над старым.

Всё логично же, правда?

Всё это можно только запомнить. Ни красоты, ни логики.

jQuery это всё безобразие порой оборачивает в более приглядный вид. Но это не ЯП, и он не решает все задачи. И это печаль.

История знает случаи, когда библиотека вырастает в отдельный язык программирования. Как правило, получается лучше, чем было. И в случае с jQuery было б лучше.

Link to comment
Share on other sites

  • 0
Но это не ЯП

Причем тут ЯП? )) я для раздумия пример привел.  Хорошо, другой пример - допустим, вы строитель.... строите допустим пирамиды.  ... Вы будете каждую профессию сами  исполнять? или позовете бригаду узкопрофильных специалистов, которые представляют нужные специализации? естественно бригаду... вам так проще. Например нужен, блокоукладчик))) он там есть, нужен гробницестроитель - он там есть)), а если походу проекта понадобится построить там же небоскреб... тут они вам ничем помочь не смогут... увы ))

Я никоим образом не против жуквери, наоборот - присильно его люблю... но, если что то нестандартное, то пфф приходится на JS

Я бы сравнил JQ с визуальной оболочкой, например линукса, все просто, понятно, удобно. Но если понадобится что то сверх этого, рано или поздно придется копать глубже

 

 

 

Символ => для функции и точка с запятой в конце строки могут быть в одном языке?

 

в php и поболее таких мест есть, просто наверно вы не настолько хорошо его знаете, чтобы ими пользоваться))

 

Не целостный. Надёргано отовсюду по мелочи.

 

под ie8 попишите ради интереса))  вот там надергано непонятно откуда.  

вы ж на нескольких языках работаете и у вас должно быть понимание того, что у каждого языка свой стиль написания, но логика то схожа

ну и JS то не только браузерный ведь )) 

 

 

 

История знает случаи, когда библиотека вырастает в отдельный язык программирования

пример плиз))) вот только не надо про CoffeeScript)  CoffeeScript это CoffeeScript и шел изначально с компилятором )))

UPD:  вот вот сюда нагрянут ценители чистого JS, затем ангулярщики и т д )) да будет холивар =)  тема неоднозначная и интерессная

 

Link to comment
Share on other sites

  • 0

Причем тут ЯП? ))

да при том, что многие, особенно начинающие, воспринимают его примерно так. Да и, в общем-то, у него есть своя логика, свой стиль, своя красота. И, в общем-то, на мой взгляд есть шансы вырасти до ЯП.

 

в php и поболее таких мест есть

эмм… Знаете, напомнило: «это в Волгограде-то на улицах грязь-бардак, люди злые, нищета, а дороги в ямах? Вы ещё в столице Южного Судана не были!»

Конечно, всегда есть что-то хуже, с чем можно сравнить, и кажется, что не так всё плохо. Но зачем сравнивать с php, когда есть ruby и python? Когда над тем же js есть coffeescript, из которого бессовестно воруются запчасти, чтобы подлатать js, подпереть его костылями.

 

JS то не только браузерный ведь

разве ж в этом кто-то усомнился? Но всё то, на что я тут обращаю внимание, относится не к браузерам, а именно к js, хоть браузерному, хоть серверному. Можно, кстати, ещё бардак с импортами припомнить.

 

пример плиз)))

да пожалуйста: php. На момент возникновения же хорошая, красивая и прогрессивная штука была.

 

вот только не надо про CoffeeScript)

Почему не надо? Кофе — это хорошо. Гораздо более стройный и логичный. Единственное к нему нарекание, что стали из руби тягать отказ от скобок, видимо забыв о том, что это не руби, и компилироваться будет в js. Ну и передавать в функцию объект, а затем ещё что-то — мягко говоря, привыкнуть надо к такому синтаксису.

Беспокоит теперь, как бы из-за es6/7 не сочли кофескрипт устаревшим и более не нужным.

 

CoffeeScript это CoffeeScript и шел изначально с компилятором )))

Неужели вы считаете, что наличие компилятора — это что-то странное для ЯП?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy