Hjem » Siste artikler » Vanilla JavaScript for nybegynnere: slik slipper du unødvendige rammeverk

Vanilla JavaScript for nybegynnere: slik slipper du unødvendige rammeverk

Hovedillustrasjon
Hovedillustrasjon. Foto: Mohammad Rahmani / Unsplash.

Mange som skal lage noe i nettleseren går rett til et rammeverk. Det kan være fristende, men for små og mellomstore prosjekter gjør det ofte koden tyngre, tregere og vanskeligere å vedlikeholde.

Vanilla JavaScript betyr ganske enkelt JavaScript uten ekstra biblioteker. Forstår du grunnmuren, blir du raskere, tryggere og mer fleksibel som utvikler, uansett hva du senere velger å bruke.

Hvorfor bry seg om vanilla JavaScript i 2020-tallets verden?

Moderne JavaScript og nettlesere har blitt langt bedre enn før. Mange ting som tidligere krevde jQuery eller store rammeverk, løses nå rett i språket med korte, forståelige funksjoner.

For små prosjekter og enkle interaksjoner på en side er det ofte nok med noen få linjer vanilla JS. Du slipper byggesteg, tunge avhengigheter og kompatibilitetsproblemer, og siden kan laste raskere for brukerne.

DOM-manipulasjon uten jQuery

Det viktigste i frontend-utvikling er å forstå hvordan du jobber med DOM-en, altså HTML-strukturen som nettleseren har tolket. Her er noen grunnleggende operasjoner med vanilla JS.

For å finne elementer bruker du typiskquerySelectorogquerySelectorAll:

Eksempel: velge og oppdatere elementer

Si at du har denne HTML-en:

<button id=”toggle”>Vis tekst</button>
<p id=”text” hidden>Hei, verden!</p>

En enkel JavaScript-fil kan se slik ut:

const button = document.querySelector(‘#toggle’);
const text = document.querySelector(‘#text’);

button.addEventListener(‘click’, () => {
  text.hidden = !text.hidden;
});

Her ser du flere viktige ting: du velger elementer med CSS-selektorer, du legger til en klikk-hendelse, og du endrer en egenskap (hidden) for å vise eller skjule innholdet.

Klasser og stil: la CSS gjøre jobben

En vanlig nybegynnerfeil er å endre mange inline-stiler direkte i JavaScript. Det gjør koden rotete og vanskelig å vedlikeholde. En bedre strategi er å la CSS styre utseendet, og bruke JS til å legge til eller fjerne klasser.

Eksempel: toggling av klasse

Anta at du vil åpne og lukke en mobilmeny. I CSS definerer du noe slikt:

.menu { display: none; }
.menu.is-open { display: block; }

I JavaScript trenger du bare å flippe klassen:

const toggle = document.querySelector(‘#menu-toggle’);
const menu = document.querySelector(‘.menu’);

toggle.addEventListener(‘click’, () => {
  menu.classList.toggle(‘is-open’);
});

Her holder du ansvaret tydelig skilt: JavaScript styrer logikken, CSS styrer presentasjonen. Dette gir bedre struktur og enklere feilsøking.

Hendelser: tenk delegering fra starten

Et vanlig problem er å koble på mange like hendelser på hvert enkelt element. Har du hundre knapper, kan det bety hundre lyttere. Det fungerer, men skalerer dårlig og kan gi uoversiktlig kode.

Event-delegering er et smart mønster: du lytter på et felles forelder-element, og bruker hendelsenstargettil å finne ut hva som ble klikket.

Eksempel: én lytter, mange knapper

Tematisk illustrasjon
Tematisk illustrasjon. Foto: Chris Ried / Unsplash.

HTML:

<ul id=”todo-list”>
  <li data-id=”1″>Kjøp kaffe <button class=”delete”>Slett</button></li>
  <li data-id=”2″>Skriv artikkel <button class=”delete”>Slett</button></li>
</ul>

JavaScript:

const list = document.querySelector(‘#todo-list’);

list.addEventListener(‘click’, (event) => {
  const button = event.target.closest(‘button.delete’);
  if (!button) return;
  const item = button.closest(‘li’);
  item.remove();
});

Nå spiller det ingen rolle om du senere legger til flere listeelementer dynamisk. Alt som har en knapp med klassendelete, vil automatisk fungere.

Vanlige fallgruver og hvordan du unngår dem

Noen feil går igjen hos nye JavaScript-utviklere. Ved å kjenne dem igjen tidlig kan du spare mye tid og frustrasjon.

En typisk felle er å kjøre kode før DOM-en er klar. Hvis skriptet ligger i<head>utendefer, vildocument.querySelectorkunne returnerenullfordi elementene ikke er lastet ennå.

Trygge måter å laste skript på

Du har flere gode alternativer:

  • Legg skriptet like før avsluttende</body>
  • Bruk<script src=”app.js” defer></script>slik at koden venter til HTML-en er tolket
  • Brukdocument.addEventListener(‘DOMContentLoaded’, …)rundt oppstartskoden

En annen felle er å blande logikk og DOM-manipulasjon overalt. Prøv å samle relaterte ting i små, rene funksjoner. Det gjør det lettere å teste, gjenbruke og lese koden senere.

Moderne JS-funksjoner du bør ta i bruk tidlig

Vanilla JavaScript betyr ikke “gammeldags”. Nybegynnere har mye å vinne på å lære seg noen moderne funksjoner tidlig, spesielt hvis du skal skrive kode som er tydelig og vedlikeholdbar.

Noen spesielt nyttige ting å sette seg inn i er:

  • constogleti stedet forvar
  • Pilfunksjoner:(arg) => { … }
  • Maler-strenger med backticks:`Hei, ${navn}`
  • Array-metoder sommap,filterogfindfor å jobbe med lister

Slike verktøy gjør det lettere å skrive kort og tydelig kode, og de finnes i moderne nettlesere. For mer avanserte behov kan du vurdere byggverktøy, men som regel kommer du langt uten.

Når er det faktisk på tide med et rammeverk?

Alt trenger ikke å være vanilla for enhver pris. Rammeverk har klare fordeler når prosjektet blir stort, mange jobber sammen, eller det er komplisert tilstand som skal holdes i synk mellom mange komponenter.

Et realistisk skille er dette: hvis du mest styler innhold, legger til enkle interaksjoner, skjemaer og noen få API-kall, holder vanilla JavaScript lenge. Hvis du jobber med en stor applikasjon med mange skjermbilder, komplekse data og mye gjenbruk av komponenter, kan et rammeverk være verdt investeringen.

Slik kommer du i gang på en trygg og strukturert måte

For å få glede av vanilla JS i hverdagen kan du starte med små, konkrete byggesteiner i eksisterende prosjekter. Velg deg én ting du vil løse uten rammeverk, for eksempel en enkel modul med faner eller et interaktivt skjema.

Lag en egen fil, for eksempeltabs.js, og hold alt som gjelder fanene der. Navngi variabler tydelig, bruk funksjoner med klare navn, og kommenter gjerne kort hvorfor noe gjøres, ikke hva koden gjør linje for linje.

Etter hvert som du ser hvor mye som er mulig med noen få linjer ren JS, blir det også lettere å vurdere nøkternt når et rammeverk faktisk er nødvendig, og når det bare er ekstra bagasje.

0 kommentarer