- Sjekk om du har node og npm.
node -v
ognpm -v
i terminalen. - Hvis du ikke, last ned node eller installer med
brew install node
.
- Kjør
npm install -g @vue/cli
(trengs strengt tatt ikke, men én dag!) - Installer Vue.js Intellij plugin
- Clone repo
- Get to work.
-
Lag et skjema i App.vue med en input, label og en knapp
-
Lag en List komponent som tar inn en items prop.
- Putt komponenten i App.vue
-
Lag en ListItem komponent som tar imot en todo prop
- Putt en eller flere i ListItem og sjekk at det blir rendret riktig
Du trenger ikke tenke så my på hva komponenter gjør enda. Bare putt noe tull i de og sjekk om det rendres.
-
Opprett et
todoList
array som gis til List som prop- Opprett et
todoList
array i App sittdata
object - Send
todoList
som prop til List viaitems
prop'en
- Opprett et
-
Rendre en ListItem for hver item inne i List
- Bruk
v-for
til å rendre en ListItem for hveritem
iitems
, inne i List. - Send hvert
item
fraitems
listen inn i ListItem via todo prop'en - tips:
v-for
returnererindex
for hver loopv-for="(item, index) in items"
. Kanskje du trenger index?
- Bruk
-
Lag en
addItem
metode i App- Knytt verdien i inputfeltet til en verdi i
data
' ved å brukev-model
- Legg til en
addItem
metode påmethods
objektet i App this.todoList.push(...)
inn texten fra inputfeltet.- Kjør metoden når skjemaet submitter. (hint:
@submit
)
- Knytt verdien i inputfeltet til en verdi i
-
Hvis du ikke allerede har en slett knapp i ListItem er det på tide
- Opprett
methods
objektet i ListItem og lag en metode som heterdeleteItem
. Sleng gjerne enalert('it works')
inni der. - Legg til et
v-on
directive for klikk (forkortet@click
) som kjørerdeleteItem
metoden. Sjekk om'it works'
. - Hvis
'it works'
, bytt ut alert medthis.$emit('delete-todo', index)
. Abrakadabra! Custom events!
(NB:
index
kan sendes in som prop når du kjører v-for i List)Merk:
delete-todo
er et vilkårlig navn på en custom event. - Opprett
-
Opprett en
removeItem
metode i App- Opprett en metode
removeItem
som sletter ett element fratodoList
basert på index - List må ta imot
removeItem
via en prop, kanskje ved samme navn? Du velger - Denne kjøres når det forekommer en
delete-todo
event på ListItem, altså... drumroll..@delete-todo
!!
- Opprett en metode
Nå skal du ha en liste hvor du kan legge til og slette ting.
Hvis ikke, sjekk ut losning branchen 😆