Vue.js 3: 첫 단계
19710 단어 vuejavascriptwebdevvue3
Vue.js 3.0. 이미지 크레딧: JavaScript Weekly
Code-named "One Piece," Vue 3.0 is the latest version of one of the most popular front-end frameworks.
2020년 9월 18일, Vue 3.0's 출시 소식이 전해졌습니다.
Vue.js 팀은 공식 Twitter 계정을 통해 릴리스를 발표했습니다.
Vue.js
@vuejs
Vue 3.0 "원피스"가 나왔습니다! github.com/vuejs/vue-next…
오후 16:26 - 2020년 9월 18일
나는 그것을 시도하게되어 기뻤고 작은 Todo 앱을 만들기로 결정했습니다.
이 기사에서는 Vue 3.0을 사용하여 웹 앱을 만드는 과정을 안내합니다.
하지만 시작하기 전에 우리가 만들려는 것을 살짝 보여드리겠습니다.
Vue 3.0으로 만든 Todo 앱. 이미지 제공: Pratik Chaudhari(저자)
이제 모양과 작동 방식에 대한 시각적 단서를 얻었으므로 코드를 살펴보겠습니다.
1 단계.
Vue 3.0을 사용하도록 앱 설정
일을 단순하게 유지하기 위해 널리 사용되는 JavaScript 패키지 관리자인 npm 을 사용하지 않을 것입니다.
대신 CDN에서 직접 vue.js를 앱으로 가져오기 위해 good ol'
<script>
태그를 사용합니다.<script src="https://unpkg.com/vue@next"></script>
위 코드에서 @next에 유의하십시오. vue.js의 최신 버전을 원한다는 것을 unpkg.com에 나타내는 데 사용됩니다.
@next를 생략하면 unpkg.com은 Vue.js의 현재LTS 버전인 vue 2.6.12를 제공합니다.
2 단계.
다른 타사 라이브러리 가져오기
내가 사용한 유일한 타사 라이브러리는 Materialize CSS 입니다.
꼭 필요한 것은 아니지만 앱이 멋지게 보입니다 :)
이제 가져오겠습니다.
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
보시다시피 여기에 두 가지 가져오기가 필요합니다.
Materialise CSS에서 제공하는 토스터 및 툴팁을 표시하려면 JS 파일이 필요합니다.
3단계.
HTML 템플릿 만들기
두 개의 입력 필드가 있는 양식이 필요합니다. 하나는 제목용이고 다른 하나는 설명용입니다. 또한 사용자가 할 일 항목을 앱에 제출할 수 있는 버튼도 필요합니다.
코드는 다음과 같습니다.
<form class="col s12">
<div class="row">
<div class="input-field col s4">
<i class="material-icons prefix">title</i>
<textarea v-model="todo.title" id="todo_title" class="materialize-textarea"></textarea>
<label for="todo_title">A small title would be nice...</label>
</div>
<div class="input-field col s4">
<i class="material-icons prefix">description</i>
<textarea v-model="todo.description" id="todo_description" class="materialize-textarea"></textarea>
<label for="todo_description">Maybe add a little description...</label>
</div>
<div class="s4">
<a class="btn-floating btn-large waves-effect waves-light red tooltipped" data-position="bottom"
data-tooltip="Add Todo!" @click="addTodo()"><i class="material-icons">add</i></a>
</div>
</div>
</form>
또한 사용자가 추가한 모든 작업을 표시하는 테이블이 필요합니다.
디자인 방법은 다음과 같습니다.
<table class="striped centered responsive-table">
<thead>
<th></th>
<th>
Title
</th>
<th>
Description
</th>
<th></th>
</thead>
<tbody>
<tr v-for="(todo,id) in todos">
<td>
{{id}}
</td>
<td>
{{todo.title}}
</td>
<td>
{{todo.description}}
</td>
<td>
<a
v-show="!todo.done"
class="btn-floating btn-large waves-effect
waves-light light-green accent-4 tooltipped"
data-position="bottom"
data-tooltip="I'm done with this one!"
@click="markAsDone(todo.id)">
<i class="material-icons">check</i>
</a>
<i v-if="todo.done"
class="todo-done-tick material-icons
tooltipped"
data-position="bottom"
data-tooltip="You're done with this
one!">
check
</i>
</td>
</tr>
<tr v-show="todoCount == 0">
<td colspan="4">
You haven't added any Todos yet :(
</td>
</tr>
</tbody>
</table>
4단계.
app.js 만들기
앱에 생명을 불어넣을 app.js를 만들어 봅시다.
const TodoApp = {
data() {
return {
todoCount: 0,
todo: {
id: 0,
title: '',
description: '',
done: false
},
todos: {}
}
},
mounted() {
const vm = this;
vm.initialize();
},
methods: {
initialize() {
const vm = this;
vm.addTooltips(vm.findTooltippedElementsFromDOM());
},
addTooltips(tooltippedElements) {
const vm = this;
M.Tooltip.init(tooltippedElements, {});
},
findTooltippedElementsFromDOM() {
const vm = this;
return document.querySelectorAll('.tooltipped');
},
addTodo() {
const vm = this;
if (!vm.todo.title || vm.todo.title.trim() === '') {
M.toast({ html: 'Need a title for this Todo!', classes: 'rounded' });
return;
}
if (!vm.todo.description || vm.todo.description.trim() === '') {
M.toast({ html: 'A small description would be nice!', classes: 'rounded' });
return;
}
vm.todo.id = ++vm.todoCount;
vm.todos[vm.todo.id] = vm.todo;
vm.todo = { title: '', description: '' };
vm.addTooltipsToDynamicElements();
},
markAsDone(id) {
const vm = this;
vm.todos[id].done = true;
vm.addTooltipsToDynamicElements();
},
addTooltipsToDynamicElements() {
const vm = this;
setTimeout(function () {
vm.addTooltips(vm.findTooltippedElementsFromDOM());
}, 500);
}
}
}
Vue.createApp(TodoApp).mount('#todoapp');
위의 모든 코드를 함께 붙이면 기사 시작 부분의 gif에서 본 것처럼 앱이 작동하기 시작합니다.
이 앱의 라이브 데모를 보고 싶은 경우(코드를 변경하고 가지고 놀 수도 있음) 아래의 Codepen으로 이동하십시오. 여기에서 모든 코드를 업로드했습니다.
Reference
이 문제에 관하여(Vue.js 3: 첫 단계), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/pratikgchaudhari/vue-js-3-first-steps-27c2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)