카테고리 없음

localStorage 값 삭제하기

dev_0hoon 2024. 5. 9. 00:26
<template>
    <div>
        <ul>
            <li v-for="(todoItem,i) in todoItems" v-bind:key="i"
            class="shadow">{{ todoItem }}
            <button v-on:click="removeTodo(todoItem, i)" class="removeBtn">
                <i class="removeBtn fas fa-trash-alt"></i>
            </button>
        </li>
        </ul>
    </div>
</template>

<script>
export default {
    data : function(){
        return{
            todoItems : []
        }
    },
    created : function(){
        if(localStorage.length > 0){
            console.log(localStorage.length);            for(var i = 0; i < localStorage.length; i++){
                this.todoItems.push(localStorage.key(i))
                console.log(localStorage.key(i));   
            }
        }
    },
    methods : {
        removeTodo : function(todoItem,index){
            localStorage.removeItem(todoItem);
            this.todoItems.splice(index, 1);
        }
    }
}
</script>

<style scoped>
ul {
  list-style-type: none;
  padding-left: 0px;
  margin-top: 0;
  text-align: left;
}
li {
  display: flex;
  min-height: 50px;
  height: 50px;
  line-height: 50px;
  margin: 0.5rem 0;
  padding: 0 0.9rem;
  background: white;
  border-radius: 5px;
}
.checkBtn {
  line-height: 45px;
  /* color: black; */
  color: #62acde;
  margin-right: 5px;
}
.checkBtnCompleted {
  /* color: #62acde; */
  color: black;
}
.textCompleted {
  text-decoration: line-through;
}
.removeBtn {
  margin-left: auto;
  color: #de4343;
}
</style>

 

storage에서 remove하면 화면이 바뀌지 않기 때문에

배열에서도 지워줘야 한다.

splice문법은 (2,1) 2번 순서의 1개를 없앤다는 소리다.