# Vue js 시작하기
vue js 공식문서에 따르면
Vue(/vjuː/ 로 발음, view 와 발음이 같습니다.)는 사용자 인터페이스를 만들기 위한 프로그레시브 프레임워크 입니다
# vue의 기본적인 기능
# 선언을 통하여 데이터 렌더링하기
// index.html ...
<body>
<div id="app">{{ message }}</div>
...
</body>
// Vue instance 생성하기
var app = new Vue({
// id로 element 타겟 설정하기
el: "#app",
// data 객체에 필요한 정보 저장하기.
data: {
message: "Hello Vue!",
},
});
app.message = "changed the data";
이제 화면에는 Hello Vue가 보이게 된다.
# v- attribute
v-를 통해서 다양한 vuejs attribute를 설정할 수 있다.
# v-if
<div id="app">
<span v-if="seen">Now you see me</span>
</div>
var app = new Vue({
el: "#app",
data: {
// 보이고
seen: true,
},
});
// 안 보이고
app.seen = false;
# v-for
...
<body>
<div id="app">
<ol>
<li v-for="todo in todos">{{ todo.text }}</li>
</ol>
</div>
...
</body>
var app = new Vue({
el: "#app",
data: {
todos: [
{ text: "Learn JavaScript" },
{ text: "Learn Vue" },
{ text: "Build something awesome" },
],
},
});
# v-on
...
<body>
<div id="app">
<p>{{ message }}</p>
<button v-on:click="reverseMessage">Reverse Message</button>
</div>
...
</body>
var app = new Vue({
el: "#app",
data: {
message: "Hello Vue.js!",
},
methods: {
reverseMessage: function () {
this.message = this.message.split("").reverse().join("");
},
},
});
# v-model
...
<body>
<div id="app">
<p>{{ message }}</p>
<input v-model="message" />
</div>
...
</body>
var app = new Vue({
el: "#app",
data: {
message: "Hello Vue!",
},
});
# components
...
<body>
<div id="app">
<ol>
<todo-item></todo-item>
<todo-item></todo-item>
</ol>
</div>
...
</body>
//children components
Vue.component("todo-item", {
template: "<li>This is a todo</li>",
});
// parent
var app = new Vue({
el: "#app",
});
# with props components
...
<body>
<div id="app">
<ol>
<todo-item
v-for="item in groceryList"
v-bind:todo="item"
v-bind:key="item.id">
</todo-item>
</ol>
</div>
<!-- https://vuejs.org/v2/guide/list.html#key -->
<script src="index.js"></script>
</body>
</html>
Vue.component("todo-item", {
props: ["todo"],
template: "<li>{{ todo.text }}</li>",
});
var app = new Vue({
el: "#app",
data: {
groceryList: [
{ id: 0, text: "Vegetables" },
{ id: 1, text: "Cheese" },
{ id: 2, text: "Whatever else humans are supposed to eat" },
],
},
});