notatki JS magda.t

notatki JS magda.t
Photo by Kenny Eliason / Unsplash

<!–
Wyjaśnienie każdego elementu:
- <!DOCTYPE html> - deklaracja typu dokumentu, włącza tryb standardowy
- <html lang="pl"> - element główny, atrybut lang określa język (polski)
- <head> - sekcja metadanych niewidoczna dla użytkownika
- <meta charset="UTF-8"> - kodowanie znaków, obsługuje polskie znaki
- <meta name="viewport"> - konfiguracja dla urządzeń mobilnych
- <title> - tytuł w zakładce przeglądarki
- <body> - treść widoczna dla użytkownika
-->

pytania:

cz.I

  1. czym jest HTML?--> język do opisu struktury stron internetowych
  2. co oznacza <!DOCTYPE html> - deklaracja typu dokumentu html5
  3. do czego służy znacznik <html>: określa początek i koniec dokumentu html
  4. co zawiera sekcja <head>: metadane, tytył i odnośnik do plików
  5. za co odpowiada sekcja <body>: zawiera widoczną zawartośc strony
  6. do czego służy <meta charset="UTF-8">: ustawia kodowanie znaków strony
  7. który znacznik słuzy do nagłówków? : <h1> do <h6>
  8. jak wstawiamy zewnętrzny plik CSS?: za pomocą <link rel='stylesheet'href='style.css'>
  9. jak wczytać zewnętrzny skrypt JS?: za pomocą <script src='app.js'></script>
  10. jak działa <meta name="viewport"> - dostosowuje stronę do ekranów urządzeń
  11. ile poziomów nagłówków jest w HTML?: sześć (h1-h6)
  12. do czego słuzy znacznik <p>?: tworzy akapit tekstu
  13. jak wstawiamy nowa linię w html?: za pomocą tagu brake <br>
  14. co robi znacznik <hr>?: wstawia pozioma linię
  15. który element jest blokowy:<div>
  16. który element jest inline?: <span>
  17. do czego służy <strong>?: podkreśla wazność tekstu(pogrubienie)
  18. jak działa <em>?: zaznacza teks jako wyróżniony(kursywa)
  19. co robi znacznik <code>? oznacza fragment kodu programistycznego
  20. co oznacza pojęcie accessibility w HTML? dostępnośc stron dla osób z niepełnosprawnościami.

czII.

  1. lista nieuporządkowana w HTML? <ul>
  2. pojedynczy element listy HTML <li>
  3. tworzenie listy uporządkowanej <ol>
  4. lista definicji <dl>
  5. pary w liście definicji tworzą: <dt> i <dd>
  6. jak stworzyć zagnieżdżoną listę: wstawić <ul> lub <ol> w <li>
  7. breadcrumbs w nawigacji: to jest ścieżka nawigacyjna użytkownika
  8. który atrybut w <a> definiuje cel odnośnika: href
  9. jak otworzyć link w nowej karcie: target= "_blank"
  10. który atrybut<img> opisuje obraz dla czytników ekranu: alt
  11. jak wskazać alternat. źródła obrazu dla różnych rozdzielczości: srcset
  12. jaki atrybut w <img> opóźnia ładowanie poza ekranem?: loading="lazy"
  13. znacznik do osadzania pliku video: <video>
  14. które znaczniki definiują strukturę tabeli danych: <table>, ,thead>, <tbody>, <tfloot>
  15. do czego słuzy atrybut colspan w tabeli: łaczy kolumny w jednej komórce
  16. jak oznaczamy nagłowki kolumn w tabeli: <th>
  17. jakie znaczenie ma <caption> w tabeli: tytuł lub opis tabelki
  18. który atrybut <form> określa sposób przesyłania danych: method
  19. jakie typy obsługuje <input>: text, email, password, number
  20. jak wymusić wypełnienie pola w formularzu?: required.

cz.III

  1. proces nakładania się reguł CSS: cascading
  2. zapis koloru w formacie RGB z przeźroczystością: rgba(255,0,0,0.5)
  3. pogrubienie w CSS: font-weight
  4. która właściwość ustawia odstęp między literami: letter-spacing
  5. jak w CSS ustawić tło obrazkowe: background-image
  6. jakiego słowa używamy do definiowania zmiennej CSS? --nazwa
  7. które jednostki CSS są zależne od rozmiaru okna?:vw, vh
  8. jakie właściwości tworzy gradient promieniowy kolorów?: radial-gradient
  9. jak właczyć sprawdzanie poprawność formularza HTML: użyć atrybutów walidacyjnych.

 cz.IV

1.Który element BOX Model znajduje się najbliżej zawartości:content

2.      za odtstęp między zawartością a obramowaniem odpowiada właściwośc: Padding

3.      która część Box modelu nie ma koloru tła elementu: Margin

4.      jakie są dwie główne wartości właściwości box-sizing: content-box i border-box

5.      w trybie content-box szerokość nie uwzględnia:paddingu i borderu

6.      w trybie border-box width obejmuje: content, padding i border

7.      jak obliczana jest całkowita szerokość elementu: width+padding+border+margin

8.      do czego służy DevTools w kontekście Box Modelu: analiza marginesów i rozmiarów elementów

9.      jakie wartości może mieć właściwość display: block, inline, flex, grid

10.   jak zachowuje się element o display:inline --> nie zaczyna nowej linii

11.  Jakie pozycjonowanie jest domyślne dla elementów?  Static

12.  Element z position:absolute jest pozycjonowany względem?  Najbliższego przodka z pozycją inną niż static

13.  Jak działa z-index?  Określa kolejność nakładania się elementów

14.  Jaką właściwość używamy do kontrolowania przepełnienia treści?  Overflow

15.  Czym różni się visibility:hidden od display:none?  Hidden ukrywa bez usuwania miejsca

16.  Które wartości należą do justify-content? Flex-start, center, space-between

17.  Co robi właściwość flex-wrap?  Zawija elementy do nowej linii

18.  Jak ustawić różne odstępy między elementami w flexboxie?  Użyć właściwości gap

19.  Co określa grid-template-columns?  Liczbę i szerokość kolumn siatki

20.  Jak działają media queries w CSS?  Dostosowują styl do rozmiaru ekranu

 

czV. JS: zmienne i typy danych

1.         Gdzie najlepiej umieścić skrypt JS w HTML, by działał po załadowaniu strony?  Na końcu body

2.         Jak działa atrybut defer w znaczniku script?  Wykonuje skrypt po załadowaniu DOM

3.         Jak działa atrybut async w znaczniku script?  Wykonuje skrypt gdy tylko się załaduje

4.         Jaka jest różnica między var i letVar ma function scope, let ma block scope

5.         Dlaczego nie zaleca się używać var?  Brak block scope i ryzyko nadpisania

6.         Co to jest Temporal Dead Zone (TDZ)? Okres przed inicjalizacją zmiennej let/const

7.         Co oznacza hoisting w JavaScript?  Podnoszenie deklaracji na początek zakresu

8.         Jaka konwencja nazewnictwa jest poprawna dla zmiennej boolean?  isActive

9.         Jak nazywać stałe w JS zgodnie z konwencją?  UPPER_CASE

10.      Jak pisać nazwy funkcji zgodnie z konwencją JS?  camelCase z czasownikiem

11.      Ile jest prymitywnych typów danych w JS?  7

12.      Który z poniższych NIE jest typem prymitywnym?  Object

13.      Co zwróci typeof null?  Object

14.      Co zwróci typeof NaN?  Number

15.      Jak poprawnie sprawdzić czy wartość to NaN?  Number.isNaN(x)

16.      Jak utworzyć symbol z opisem w JS?  Symbol(‘opis’)

17.      Co oznacza BigInt w JS?  Typ do przechowywania bardzo dużych liczb

18.      Jaki wynik da typeof undefined?  ‘undefined’

19.      Jak sprawdzić czy wartość to liczba całkowita w JS?  Number.isInteger(x)

20.      Co robi funkcja prompt()?  Wyświetla okno dialogowe i zwraca wpisany tekst

 cz VI: Pętle i instrukcje warunkowe

1.         Jaki operator służy do potęgowania w JavaScript?  **

2.         Co zwróci 7 % 3?  1

3.         Który operator sprawdza równość bez konwersji typów?  ===

4.         Jaki będzie wynik ‘5’ – 2?  3

5.         Co zwróci parseFloat(3.14px)?  3.14

6.         Czym różni się do…while od while?  Do…while wykona się co najmniej raz

7.         Która z wartości jest falsy w JS?  0

8.         Jaki będzie wynik ‘5’ + 2?  52

9.         Jaki wynik da 2 == ‘2’?  true

10.      Jak działa operator &&?  Zwraca pierwsze falsy lub ostatni truthy

11.      Jaki wynik da: null ?? ‘wartość’?  domyślne

12.      Co zapewnia optional chaining ‘?.’ ?  Bezpieczny dostęp przy null/undefined

13.      Który operator ma wyższy priorytet: && czy || ?  &&

14.      Co zwróci false || ‘ok’ && ‘x’ ?  x

15.      Który operator przypisze tylko gdy wartość jest falsy?  II=

16.      Która konstrukcja sprawdza warunek i wykonuje blok kodu?  If

17.      Który wzorzec upraszcza zagnieżdżone ify?  Guard clauses

18.      Kiedy wybrać switch zamiast if-else?  Gdy porównujemy jedną zmienną do wielu wartości

19.      Jaki wynik dla age=17 w age>=18 ? ‘OK’ : ‘NO’ ?  NO

20.      Co robi continue w pętli for?  Pomija bieżącą iterację

 czVII: Pętle, cd i funkcje

1.         Do czego służy pętla for…in w JS?  Iteruje po kluczach obiektu

2.         Co iteruje pętla for… of?  Wartości elementów z iterowanych kolekcji

3.   Dlaczego zagnieżdżone pętle mogą być wolne?  Wykonują wiele iteracji w każdej pętli

4. Która technika może przyśpieszyć pętlę for?  Buforowanie długości tablicy w zmiennej

5.    Jak przerwać dwie zagnieżdżone pętle naraz?  Użyć etykiety i instrukcji break

6.         Co jest przykładem obiektu iterowalnego?  Tablica używana w pętli for..of

7.         Co zwraca metoda next () w iteratorze?  Obiekt z polami value i done

8.  Co wyróżnia deklarację funkcji od wyrażenia?  Doklaracja jest hoistowana w całości

9.  Co opisuje parametry funkcji?  Nazwane zmienne zdefiniowane w deklaracji

10.Do czego służy obiekt arguments?  Daje dostęp do wszystkich argumentów funkcji

11.    Co robi instrukcja return w funkcji?  Zwraca wartość i kończy działanie funkcji

12.   Co jest prawdą o zasięgu funkcji?  Zmienne w niej są niewidoczne na zewnątrz

13.      Która nazwa funkcji najlepiej pasuje do konwencji JS?  calculateTotalPrice

14.      Jak zapiszesz funkcję strzałkową dodającą a i b?  (a, b) => a + b

15.      Czym różnią się arrow functions od zwykłych?  Nie mają własnego this ani arguments

16.      Jak ustawisz domyślny parametr count na 1?  Function f(count = 1) {}

17.      Co robi parametr …args w funkcji?  Zbiera pozostałe argumenty do tablicy

18. Co to jest funkcja wyższego rzędu?  Funkcja przyjmująca lub zwracająca funkcję

19.  Co oznacza, że funkcje są pierwszej klasy w JS?  Można je przekazywać i przechowywać jak dane

20.      Które wywołanie używa funkcji wyższego rzędu?  [1, 2, 3].map(x=> x * 2)

 cz VIII: This, tablice i obiekty

1.         Co zwraca this w globalnym kontekście przeglądarki?  Window

2.         Co zwraca this w funkcji wywołanej bez kontekstu w trybie strict?  Undefined

3.         Co określa kontekst this w metodzie obiektu?  Obiekt przed kropką

4.         Która metoda ustawia this i wywołuje funkcję natychmiast?  Call

5.         Która metoda przyjmuje argumenty jako tablicę i ustawia this?  Apply

6.         Która metoda zwraca nową funkcję z przypisanym this?  Bind

7.         Jak zachowuje się this w arrow function?  Dziedziczy this z otoczenia

8.         Co oznacza sparse array?  Tablica z brakującymi indeksami

9.         Co zwraca length przy sparse array?  Najwyższy indeks +1

10.      Jaka metoda dodaje element na końcu tablicy?  Push

11.      Jaka metoda usuwa pierwszy element tablicy?  Shift

12.      Co zwracam Array.isArray([]) ?  True

13.      Jaki typ zwraca typeof [] ?  Object

14.      Jaka metoda wykonuje funkcję dla każdego elementu bez zwrotu tablicy?  forEach

15.      Która metoda zwraca nową tablicę z przekształconych elementów?  Map

16.      Która metoda zwraca pierwszy element spełniający warunek?  Find

17.      Która metoda sprawdza, czy dowolny element spełnia warunek?  Some

18.      Która metoda sprawdza, czy tablica zawiera wartość?  Includes

19.      Co oznacza method chaining?  Łączenie kilku metod po sobie

20.      Jak odwołać się do właściwości obiektu o nazwie z zmiennej?  Bracket notation

 cz IX: Zaawansowane obiekty i tablice

1.         Który zapis tworzy dynamiczną nazwę właściwości?  Obj[klucz] = 1

2.         Który zapis tworzy metodę w shorthand?  Const o=[x(){}}

3.         Co zwraca Object.keys(obj) ?  Tablicę kluczy obiektu

4.         Co robi Object.values(obj) ?  Zwraca tablicę wartości

5.         Object.entries(obj) zwraca…? Tablice [llucz, wartość]

6.         Co opisują property descriptors?  Sposób działania właściwości

7.         Co robi reduce?  Akumuluje wartości do jednej

8.         Kiedy użyć reduceRight?  Gdy liczymy od końca tablicy

9.         Sort z compare function zwraca?  Liczbę porównania

10.      Metoda reverse?  Odwraca tablicę mutując ją

11.      Czym różni się slice od splice?  Slice nie mutuje

12.      Array destructuring pozwala?  Wyciągnąć elementy do zmiennych

13.      Default values w destrukturyzacji?  Dają wartość gdy brak danych

14.      Object destructuring z rename?  Daje zmienną o innej nazwie

15.      Spread w tablicach?  Rozwija element do nowej tablicy

16.      Rest operator w destrukturyzacji?  Zbiera resztę danych

17.      Object.assign służy do?  Łączenia obiektów

18.      Object.freeze?  Blokuje modyfikacje obiektu

19.      Podstawowy cel prototypu to?  Dziedziczenie w obiektach

20.      Constructor function służy do?  Tworzenia instancji obiektów

 cz X: Klasy, JSON, DOM

1.         Po co używamy klas w JavaScript?  Do tworzenia obiektów według wspólnego szablonu

2.         Jak definiujemy klasę w JS?  Słowem kluczowym CLASS

3.         Co tworzy słowo kluczowe new?  Instancję klasy

4.         Co wyróżnia metodę statyczną?  Wywołuje się ją na klasie, nie instancji

5.         Jakim słowem realizujemy dziedziczenie?  Extends

6.         Co robi super() w konstruktorze?  Wywołuje konstruktor klasy bazowej

7.         Jak oznaczamy prywatne pola klasy?  #nazwaPola

8.         Co zapewnia enkapsulacja?  Ukrywanie szczegółów implementacji

9.         Co robi JSON.stringify?  Konwertuje obiekt na tekst JSON

10.      Co robi JSON.parse?  Konwertuje tekst JSON na obiekt

11.      Do czego służy replacer w stringify?  Do filtrowania lub modyfikacji danych podczas serializacji

12.      Czym jest reviver w JSON.parse?  Funkcją modyfikującą wartości podczas parsowania

13.      Co uniemożliwia JSON przy cyklicznych referencjach?  Serializację bez specjalnej obsługi

14.      Czym jest DOM?  Reprezentacją dokumentu w pamięci jako drzewo

15.      Jakie typy węzłów istnieją w DOM?  Element, Text, Comment, Document

16.      Jak pobrać element po ID?  document.getElementById()

17.      Co zwraca querySelectorAll?  Statyczną NodeList

18.      textContent vs innerHTML – różnica? innerHTML interpretuje HTML, textContent nie

19.      Co opisuje relację parent-child w DOM?  Węzeł zawiera inne węzły jako dzieci

20.      Co wyróżnia HTMLCollection?  Jest żywą kolekcją aktualizującą się wraz z DOM

 cz XI: Manipulacja DOM, eventy

1.         Co robi createElement w DOM?  Tworzy nowy element HTML

2.         Do czego służy createTextNode?  Tworzy węzeł tekstowy

3.         Co robi appendChild?  Dodaje węzeł jako ostatnie dziecko

4.         Jak działa insertBefore?  Wstawia węzeł przed wskazanym

5.         replaceChild wymaga?  Nowego i starego węzła

6.         removeChild usuwa?  Wskazane dziecko z DOM

7.         Co robi element.remove() ?  Usuwa element z DOM

8.         cloneNode(true) oznacza?  Kopiowanie węzła razem z dziećmi

9.         style vs classList – co prawda? classList dodaje i usuwa klasy

10.      Do czego służy DocumentFragment?  Tworzy grupę węzłów dla wydajności

11.      Dlaczego addEventListener a nie onClick?  Pozwala dodać wiele handlerów

12.      Event object zawiera?  Informacje o zdarzeniu i celu

13.      Co robi preventDefault() ?  Blokuje domyślne działanie dla danego elementu

14.      stopPropagation zatrzymuje?  Propagację zdarzenia

15.      Dlaczego usuwać event listenery?  Aby uniknąć wycieków pamięci np. przy usuwaniu elementu

16.      Opcja capture w listenerze?  Uruchamia zdarzenie zanim dotrze do elementu docelowego

17.      Mouse event to?  Click, dblclick, mousedown

18.      Keyboard event to?  Keydown, keyup

19.      Focus event to?  Focus i blur

20.      Co jest kluczowe w event delegation?  Obsługa zdarzeń na wspólnym rodzicu

 cz.XII operacje asynchroniczne

1.SetTimeout wykonuje funkcję callback....--> raz po okreslonym czasie

2.jak przerwać nieskończona pętlę tworzona przez setInterval() --> clearInterval()

3.co to jest 'callback hell' --> to zagnieżdzone funkcje callback.

4.jak tworzyć nową operację asynchroniczną: new Promise()

5.co zwraca funkcja async ZAWSZE: Promise

6.które słowo kluczowe zatrzymuje wykonanie funkcji async do rozwiązania Promise? --> await

7.jaki jest początkowy stan nowo utworzonego Promise?--> pending

8.która metoda Promise czeka na WSZYSTKIE promise i zwraca tablice wyników: Promise.all

9.gdzie możemy używać słowa kluczowego await? tylko w funkcji async

10.która metoda tablicowa zwraca NOWA tablicę z przetworzonymi elementami: map

11.która pętla poprawniw czeka na async operacje z await? for...of

12.która metoda Promise wykonuje się ZAWSZe, niezależnie od wyniku:finally

13.co zwraca Promise.race--> wynik pierwszego zakończoego Promise

14.co robi metoda catch w Promise: obsługuje błędy

15.która metoda nie istnieje w Promise: Promise.wait

16.co jest 'non blocking-code' kod nie zatrzymujący wykonania programu

17.którą metode tablicową używamy gdy operacje są niezalezne i chcemy przyśpieszyć ? Promise.all z map

18.co robi metoda then w Promise: obsługuje sukces fulfilled

19.która funkcja AI jest najlepsza do długich kontekstów i code review: CLAUDE

20.jaki skrót w VS code akceptuje sugestię GitHub Copilot : Tab

JSON, HTML i XML

Istnieje wiele formatów służących do przechowywania i przesyłania danych w Internecie. Wśród najpopularniejszych można wymienić JSON, XML i HTML. JSON i XML to formaty używane do przechowywania i przesyłania danych, a każdy z nich ma inne zalety. HTML to używany do tworzenia struktury strony WWW język, któremu często towarzyszą wspomniane tu formaty magazynów danych.

Kluczowe różnice

  • JSON (JavaScript Object Notation) to format powszechnie używany do przechowywania i przesyłania danych. JSON jest popularnym wyborem w przypadku aplikacji, które korzystają z prostego i łatwego w użyciu formatu danych.
  • XML (Extensible Markup Language) to język znaczników ogólnego przeznaczenia, który jest podobny do JSON i pozwala na tworzenie bardziej złożonych struktur danych.
  • HTML (Hypertext Markup Language) służy do tworzenia struktury i zawartości stron WWW. Jest on często używany z innymi językami, np. CSS (Cascading Style Sheets) i JavaScript, w celu ujednolicenia stylu witryny WWW i zwiększenia jej interaktywności.

AJAX (Asynchronous JavaScript and XML) to technika, która pozwala na asynchroniczną wymianę danych między przeglądarką a serwerem, bez konieczności przeładowywania całej strony internetowej. Dzięki AJAXowi, strony mogą dynamicznie aktualizować tylko części swojej zawartości, co sprawia, że aplikacje webowe stają się bardziej interaktywne i responsywne, poprawiając komfort użytkownika. Jak działa AJAX?

  • Asynchroniczność: Przeglądarka wysyła żądanie do serwera w tle, podczas gdy użytkownik nadal może korzystać ze strony, która się nie przeładowuje.
  • Pobieranie danych: Po otrzymaniu odpowiedzi z serwera (w formacie takim jak JSON, XML czy tekst), JavaScript przetwarza otrzymane dane i aktualizuje odpowiednie części strony bez konieczności pełnego odświeżenia.
  • Interakcja: Zamiast ładować nową, całą stronę, AJAX pozwala na "odświeżanie bez przeładowywania", co umożliwia interakcje w czasie rzeczywistym. 

Przykłady zastosowania AJAX

  • Sklepy internetowe: Dynamiczne aktualizowanie koszyka, gdy dodajesz do niego produkty.
  • Formularze: Sprawdzanie poprawności danych w formularzu w czasie rzeczywistym, zanim wyślesz go na serwer.
  • Dynamiczne ładowanie treści: Wczytywanie kolejnych elementów strony, gdy przewijasz w dół, np. na mediach społecznościowych.
  • Sugestie wyszukiwania: Wyświetlanie podpowiedzi, gdy wpisujesz tekst w pasek wyszukiwania. 

Czym są dyrektywy Vue.js?

Dyrektywy to nic innego jak atrybut, który dodajemy do znaczników HTML, z tym, że nie są one częścią standardu HTML, a są intepretowane bezpośrednio przez Vue.js. Można również powiedzieć, że są mini-funkcjami, które zmieniają zachowanie i strukturę DOM. Każda dyrektywa rozpoczyna się od prefiksu v-, po którym dodajemy nazwę dyrektywy.

v-text

Podstawowa dyrektywa, której użyłem w niejawny sposób w poprzednim odcinku, dodaje tekst (ze zmiennej podanej jako parametr atrybutu) wewnątrz elementu, do którego została przypisana dyrektywa. Dyrektywy v-text używa się niejawnie stosując zapis klamrowy (mustache tag) i w gruncie rzeczy daje taki sam rezultat.

<div id="app">
  <span> {{message}} </span>
  <span v-text="message"></span>
</div>    
var app = new Vue({
  el: '#app',
  data: {
    message: 'Hello Vue!'
  }
})

v-html

Dyrektywa v-html jest bardzo podobna do v-text, z tą różnicą, że pozwala na przekazanie znaczników HTML, które są następnie interpretowane przez przeglądarkę internetową. W pierwszym przypadku zostanie zwrócony dokładnie i dosłownie tekst kryjący się w zmiennej message, natomiast w drugim tylko Hello from HTML.

<div id="app">
  <span v-text="message"></span>
  <span v-html="message"></span>
</div>  
var app = new Vue({
  el: '#app',
  data: {
    message: "<strong>Hello from HTML</strong>"
  }
})

v-show

v-show jest dyrektywą warunkową, która po przyjęciu argumentu, który jest prawdą, spowoduje, że element do którego jest przypisana zostanie wyświetlony użytkownikowi. W przypadku fałszu do elementu zostanie dodany styl CSS display:none. Dyrektywa v-show nie usuwa elementu z DOM.

<div id="app">
  <p v-show="enoughMoney">Buy it</p>
</div>  
var app = new Vue({
  el: '#app',
  data: {
    enoughMoney: true
  }
})

v-if, v-else

Następną dyrektywą warunkową jest v-if. Na zewnątrz działa tak samo jak v-show, z tą różnicą, że jeżeli warunek nie jest spełniony to element do którego się odnosi nie zostanie dodany do DOMv-else nie istnieje samodzielnie i zawsze występują w parze z v-if, jest wykonywana gdy pierwszy warunek nie został spełniony.

<div id="app">
  <p v-if="enoughMoney">Buy it</p>
  <p v-else>You don't have enough money</p>
</div>  
var app = new Vue({
  el: '#app',
  data: {
    enoughMoney: true
  }
})

v-pre

Pozwala na wyświetlenie tekstu zawierającego znaki ````, interpreter Vue.js ominie wszystko, co znajduje się wewnątrz taga HTML (oraz jego dzieci) opatrzonego tą dyrektywą - zostanie zwrócony pre-formatowany tekst.

<div id="app">
  <p v-pre> {{ message will be not compilated }} </p>
</div>  

v-once

Dyrektywa v-once powoduje, że element (oraz elementy podrzędne) zostanie przetworzony przez Vue.js tylko raz. Jakakolwiek zmiana wartości zmiennej message za pomocą konsoli czy też kodu JavaScript nie spowoduje, że zostanie ona przetwrzona i wyświetlona jej zaktualizowana wartość. Warto pamiętać, że wartość zmiennej zostanie zmieniona, natomiast nie nastąpi odświeżenie elementów DOMu.

<div id="app">
  <p v-once> {{message}} </p>
</div>  
var app = new Vue({
  el: '#app',
  data: {
    message: 'This message is genreated only once'
  }

Istnieje jeszcze kilka dyrektyw, które są bardziej zaawansowane, m.in.: v-forv-modelv-bind

Tak, dyrektywy v-forv-model i v-bind to kluczowe i zaawansowane dyrektywy w frameworku Vue.js służące do iteracji po elementach, dwukierunkowego wiązania danych oraz dynamicznego wiązania atrybutów. v-for służy do renderowania listy elementów na podstawie tablicy lub obiektu, v-model do łatwego tworzenia dwukierunkowych powiązań między elementem formularza a danymi aplikacji, a v-bind (skracane jako :) do dynamicznego przypisywania wartości atrybutów HTML lub właściwości komponentów.

  • v-for: Pozwala na iterowanie po elementach tablicy lub obiekcie i renderowanie ich na liście. Na przykład, można jej użyć do wyświetlania listy elementów na stronie lub do tworzenia tabel.
  • v-model: Jest to skrót dla dwukierunkowego powiązania danych. Umożliwia łatwe synchronizowanie danych między elementami formularza (np. input, textarea, select) a właściwościami danych w komponencie Vue. Zmiana w elemencie formularza automatycznie aktualizuje dane, a zmiana danych powoduje aktualizację elementu formularza.
  • v-bind: Służy do dynamicznego przypisywania atrybutów HTML lub właściwości komponentów. Zapisywany jest skrótem dwukropek (:) przed nazwą atrybutu (np. :src="imageUrl"). Pozwala na dynamiczne wiązanie wartości atrybutów, co jest przydatne w przypadkach, gdy wartość atrybutu zależy od stanu aplikacji.

co to conditional rendering-->

Renderowanie warunkowe to technika programistyczna, która pozwala na dynamiczne wyświetlanie lub ukrywanie elementów interfejsu użytkownika w zależności od określonych warunków. Działa na zasadzie sprawdzania pewnych warunków (np. statusu zalogowania użytkownika, danych z formularza, uprawnień) i na tej podstawie decyduje, co zostanie pokazane na ekranie. Kluczowe cechy i przykłady

  • Dynamiczne dostosowywanie interfejsu: Pozwala na tworzenie interaktywnych aplikacji, które inaczej reagują na użytkownika.
  • Przykłady:
    • Wyświetlanie przycisku "Zaloguj" dla niezalogowanego użytkownika i "Wyloguj" dla zalogowanego.
    • Pokazywanie lub ukrywanie elementów sterujących w zależności od poziomu uprawnień użytkownika.
    • Wyświetlanie innego tekstu na banerze strony, w zależności od tego, skąd przyszedł użytkownik.
    • Ukrywanie formularza rejestracji dla użytkowników, którzy już go wcześniej wypełnili.