Я сделал все свои javascript на front-end в угловом. Мое приложение не одностраничное приложение. У меня нет маршрутизации. Мне просто нужно было что-то, поэтому мое взаимодействие с пользователем не зависит от идентификаторов или имен классов элементов html.angular vs vanilla javascript vs jquery, следует ли использовать только один из них?
При таком подходе я не зависеть от кодов html/css. Они могут делать то, что они хотят, не влияя на мою логику JavaScript. Но какая-то часть моего проекта я должен сделать что-то вроде этого:
var pos = $(".two").find(".active")[0].offsetLeft;
$(".two").scrollLeft(pos - 40);
Даже то, что это только две строки кода я ненавидя это решение, потому что зависит от некоторых элементов с именами классов .two и .active.
Я не спрашиваю, как я могу сделать, что две строки в agular, но интересно, если есть некоторые рамки или Java-Lib, которые могут иметь дело с вещами, подобными угловой:
- директивы
- Услуги
- Фабрики
- Фильтры
Большая часть моего, скажем, взаимодействие с пользователем осуществляется через директивы. Большая часть моей логики, например, карт Google, выполняется с помощью угловых указаний и угловых фабрик. Все мои фильтры (например, дата форматирования выполняется с помощью угловых фильтров). И в конце все мои вызовы ajax выполняются через угловые сервисы.
При таком подходе я решил серьезную проблему, и это удобство использования кода (своего рода модульный подход), после чего я решил большую проблему с сохранением кода. Любой может работать над этим проектом после меня, не царапая его голову в течение двух месяцев в javascript-коде.
У меня возникает только одна проблема, и директивы медленнее, если они написаны как чистый javascript. Когда я говорю медленнее, я имею в виду, что есть какой-то странный тайм-аут (например, 200 мс) при рендеринге html через директиву.
В любом случае, я бы очень признателен за ввод данных относительно углового vs plain javascript или jquery, должен ли я его смешивать или должен ли я делать свой JavaScript в угловых (или некоторых других рамках).
Спасибо.
Вы можете сделать все это в ванильным JS, с тем, что он помогает некоторые проекты, чтобы иметь формальность такой структуры, как AngularJS, некоторые будут использовать adHoc-решение/библиотеку типа ReactJS или jQuery. Я думаю, что это имеет много общего с проектом и тем, что он требует. –
@JustinHerter Моя главная проблема заключается в том, что код был не надёжным для html, простым в обслуживании и отсутствием избыточности кода. Насколько я вижу, только некоторые рамки могут дать мне это. Особенно часть «код не зависит от html», – pregmatch
Если у вас проблемы с производительностью, я бы предложил обратиться к проблеме напрямую. Прыжки между каркасами не помогут. Оптимизация производительности - это расширенная тема и обычно требует хорошего знания структуры (это относится к любой структуре, а не только к угловому). – estus