Vue로 PWA 개발 - 그랜파 개발자.
Chat GPT에게 물었습니다.
vue의 예제 프로그램 하나 만들어줘.
ChatGPT
Vue.js를 사용하여 간단한 할 일 목록 (To-Do List) 애플리케이션을 만들어 보겠습니다. 이 예제는 사용자가 할 일을 추가하고, 완료 표시를 하며, 목록에서 삭제할 수 있도록 구현합니다.
1. 프로젝트 생성 및 기본 설정
먼저, Vue CLI를 사용하여 새로운 Vue 프로젝트를 생성합니다.
npm install -g @vue/cli
vue create todo-app
cd todo-app
npm run serve
2. App.vue 파일 수정
App.vue 파일을 열고 아래와 같이 코드를 작성하여 기본적인 UI와 기능을 구현합니다.
<template>
<div id="app">
<h1>To-Do List</h1>
<div class="todo-input">
<input v-model="newTodo" placeholder="할 일을 입력하세요" @keyup.enter="addTodo" />
<button @click="addTodo">추가</button>
</div>
<ul>
<li v-for="(todo, index) in todos" :key="index">
<input type="checkbox" v-model="todo.completed" />
<span :class="{ completed: todo.completed }">{{ todo.text }}</span>
<button @click="removeTodo(index)">삭제</button>
</li>
</ul>
</div>
</template>
<script>
export default {
data() {
return {
newTodo: "", // 새 할 일 내용
todos: \[\] // 할 일 목록
};
},
methods: {
// 새로운 할 일을 목록에 추가
addTodo() {
if (this.newTodo.trim()) {
this.todos.push({ text: this.newTodo, completed: false });
this.newTodo = ""; // 입력 필드 초기화
}
},
// 할 일 목록에서 특정 할 일을 삭제
removeTodo(index) {
this.todos.splice(index, 1);
}
}
};
</script>
<style>
#app {
font-family: Arial, sans-serif;
text-align: center;
margin-top: 50px;
}
.todo-input {
margin-bottom: 20px;
}
input\[type="text"\] {
padding: 8px;
width: 200px;
}
button {
margin-left: 10px;
padding: 8px 12px;
cursor: pointer;
}
ul {
list-style-type: none;
padding: 0;
}
li {
display: flex;
align-items: center;
margin-bottom: 10px;
}
.completed {
text-decoration: line-through;
color: #888;
}
</style>
3. 코드 설명
1. 템플릿:
- v-model을 사용하여 newTodo라는 변수를 입력 필드와 양방향으로 바인딩합니다.
- 사용자가 Enter 키를 누르거나 "추가" 버튼을 클릭하면 addTodo 메서드가 호출되어 새로운 할 일이 목록에 추가됩니다.
- v-for 디렉티브를 사용하여 todos 배열을 순회하고, 각 할 일을 li 항목으로 렌더링합니다.
- 각 할 일에는 완료 상태를 표시하기 위한 체크박스와 삭제 버튼이 포함되어 있습니다.
2. 메서드:
- addTodo: newTodo 값이 비어 있지 않을 때 할 일 목록에 추가하고, newTodo를 비웁니다.
- removeTodo: splice 메서드를 사용하여 todos 배열에서 특정 인덱스의 할 일을 삭제합니다.
3. 스타일:
- completed 클래스가 추가된 항목은 취소선과 색상이 변경되도록 설정했습니다.
실행 방법
npm run serve로 로컬 서버를 시작한 후 브라우저에서 http://localhost:8080으로 이동하면 앱을 볼 수 있습니다.
이 예제는 Vue.js의 기본적인 기능인 데이터 바인딩, 이벤트 처리, 리스트 렌더링, 상태 관리를 잘 보여줍니다. 이 기본적인 기능을 확장하여 더 복잡한 기능도 쉽게 추가할 수 있습니다.
ChatGPT가 시키는 대로 해 봅니다.
Vue 프로젝트 Beta Test : mylog, 일상의 기록
'그랜파 개발자의 프론트엔드 공부-Vue' 카테고리의 다른 글
Vue로 PWA 개발, ChatGPT가 제공한 프론트엔드 예제 코드로 App.vue를 수정하였습니다. (0) | 2024.11.19 |
---|---|
Vue로 PWA 개발, ChatGPT의 프론트엔드 Vue 예제를 실행해 봅시다. (2) | 2024.11.18 |
Vue로 PWA 개발, ChatGPT에게 프론트엔드 Vue를 물었습니다. (0) | 2024.11.16 |
Vue로 PWA 개발, Chat GPT에게 프론트엔드 PWA를 물었습니다. (2) | 2024.11.15 |
Vue로 PWA 개발, 프론트엔드 공부를 어떻게 하지? Chat GPT!! (5) | 2024.11.14 |