Wpis z mikrobloga

Serwus!
Mam pytanie odnośnie JavaScripta. Istnieje coś takiego jak jQuery i ułatwia on manipulację elementów DOM. Jest coś takiego jak AJAX, który umożliwia pobieranie i wysyłanie danych bez odświeżania strony.
I teraz rodzi się pytanie czym są JSowe frameworki typu React, Angular, Vue? Umożliwiają to samo co AJAX?
Jeżeli tak, to kiedy lepiej je stosować?

#naukaprogramowania #javascript #programowanie
  • 8
  • Odpowiedz
@JewelOfTheNile w takim Vue, modyfikacja zmiennej powoduje jej przwrenderowanie na stronie. Powiedzmy że masz masz przelicznik walut. Wpisujesz ile kupujesz, i całkowita kwota automatycznie się zmienia. Normalnie musiałbyś zapiąć funkcję która przy wpisaniu tekstu odświeża to pole. W Vue framework obserwuje, czy nie zaszła zmiana na obiekcie który zawiera wyliczoną kwotę.

Dodatkowo przy dużych obiektach React potrafi optymalizować renderowanie, żeby odświeżać pojedyncze pola.
  • Odpowiedz
@JewelOfTheNile: AJAX to technika asynchronicznego obsługiwania żądań http w tle, implementowana w przeglądarce za pomocą API XMLHttpRequest lub Fetch, które są następnie wykorzystywane w takich nakładkach jak $.ajax() czy axios. React i Vue zajmują się tylko widokiem, nie mają nic wspólnego z ajaxem. Ułatwiają one budowanie stron typu SPA, gdzie renderowanie zawartości odbywa się po stronie klienta, a nie serwera. Angular jest frameworkiem 'batteries included' i oprócz widoku zajmuje się
  • Odpowiedz
@JewelOfTheNile: w dużym skrócie - zmieniają poziom abstrakcji. Zamiast bawić się w ręczne zmienianie czegoś w elemencie $('#x') przy zmianie danych, a potem ustawienie odpowiedniej wartości w $('#y'), taki Vue/React/Angular będzie wiedział które elementy na stronie ma zmodyfikować prawie wyłącznie bazując na samych danych i tym jak te elementy wcześniej oznaczyłeś. Mniej grzebania w DOM, więcej pracy z samymi danymi. Super sprawa przy aplikacjach prezentujących dane i różnego rodzaju formularzach,
  • Odpowiedz
@Paczek_w_masle: @Pesio: @TwigTechnology:
To weźmy za przykład Messengera. Mam rozumieć, że na backendzie jest jakieś API. Co w takim razie pozwala na odczytywanie danych ( wyświetlanie nowych wiadomości ) bez przeładowywania strony? AJAX?
Czyli React i Vue odpowiadają tylko za manipulację elementów na stronie? W żaden sposób nie pobierają danych jako JSON czy coś?
  • Odpowiedz
@JewelOfTheNile: AJAXem wysyła się i odbiera dane (Chociaż jeśli chodzi o messengera to pewnie będą websockety a nie AJAX). Reacty i inne Vue zajmują się zarządzaniem DOM. Tak, że np. po odebraniu jakichś danych piszemy funkcje które dodaje je do obiektu state gdzieś w appce, który to jest obserwowany przez takiego Reacta. Jeśli gdzieś w naszym komponencie zadeklarowaliśmy, że wyświetlamy pewne rzeczy z tego obiektu state to zostanie to automatycznie
  • Odpowiedz
@JewelOfTheNile: robią tyle że piszesz sam kod w html, sam kod w js do pobrania tych elementów i przypisania ich do jakiejś zmiennej i tyle, przy jakiś zmianach tych obiektów aktualizują się one i w widoku i w jsie
  • Odpowiedz