<div id="app">
<button v-on:click="cnt += 1">ํด๋ฆญ</button>
<p>์ ๋ฒํผ์ ํด๋ฆญํ ํ์๋ ๋ฒ ์
๋๋ค.</p>
</div>
<script>
new Vue({
el: "#app",
data: {
cnt: 0,
},
});
</script>
- ์ด๋ฒคํธ ๋ฐ์์ ์ฒ๋ฆฌ ๋ก์ง์ v-on์ ๋ฃ๊ธฐ ํ๋ค๋ค. ์ด ๋๋ฌธ์ v-on์์๋ ์ด๋ฒคํธ ๋ฐ์์ ์ฒ๋ฆฌํด์ผ ํ๋ method๋ฅผ ๋ฐ์ ์ฒ๋ฆฌ
<div id="app">
<button v-on:click="greet">Greet</button>
</div>
<script>
new Vue({
el: "#app",
data: {
name: 'JS',
},
methods:{
greet(){
alert('Hello ' + this.name + '!');
}
}
})
</script>
<div id="app">
<button v-on:click="greet1('JS')">Greet</button>
<button v-on:click="greet2($event, 'JJS')">Greet</button>
</div>
<script>
new Vue({
el: "#app",
methods:{
greet1(msg){
alert('Hello ' + msg + '!');
},
greet2(e, msg){
if(e) e.preventDefault();
alert('Hello ' + msg + '!');
}
}
})
</script>
- ์์ ์์ ์ฒ๋ผ method๋ด์์ ์์
์ ํ ์ ์์ง๋ง, method๋ DOM์ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฒ๋ณด๋ค data ์ฒ๋ฆฌ๋ฅผ ์ํ ๋ก์ง๋ง ์์
ํ๋ ๊ฒ์ด ์ข๋ค.
- ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด, Vue๋ v-on ์ด๋ฒคํธ์ ์ด๋ฒคํธ ์์์ด๋ฅผ ์ ๊ณตํ๋ค.
- ์์์ด๋ ์ ์ผ๋ก ํ์๋ ์ ๋ฏธ์ฌ์ด๋ค.
<!-- ํด๋ฆญ ์ด๋ฒคํธ ์ ํ๊ฐ ์ค๋จ๋ฉ๋๋ค. -->
<a v-on:click.stop="doThis"></a>
<!-- ์ ์ถ ์ด๋ฒคํธ๊ฐ ํ์ด์ง๋ฅผ ๋ค์ ๋ก๋ ํ์ง ์์ต๋๋ค. -->
<form v-on:submit.prevent="onSubmit"></a>
<!-- ์์์ด๋ ์ฒด์ด๋ ๊ฐ๋ฅํฉ๋๋ค. -->
<a v-on:click.stop.prevent="doThat"></a>
<!-- ๋จ์ํ ์์์ด๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค. -->
<form v-on:submit.prevent></form>
<input v-on:keyup.enter="submit">
.enter (.13)
.tab
.delete ("Delete" ์ "Backspace" ํค ๋ชจ๋๋ฅผ ์บก์ฒํฉ๋๋ค )
.esc
.space
.up
.down
.left
.right
<div id="app">
์์ด๋ : <input type="text" v-model="id" ref="id"/>
<button @click="search">์์ด๋ ์ค๋ณต ์ฒดํฌ</button>
</div>
<script>
new Vue({
el: "#app",
data: {
id: '',
},
methods: {
search(){
if(this.id.length==0){
alert('์์ด๋๋ฅผ ์
๋ ฅํ์์ค ! ');
// ๋ค์ ์
๋ ฅ์ฐฝ์ ์ปค์ ๊ฐ์ง
this.$refs.id.focus();
return;
}
console.log(this.$refs.id.value);
alert('์์ด๋ ์ค๋ณต์ฒดํฌ ์ฑ๊ณต');
},
},
});
</script>
<div id="app">
<div v-bind:class="{ active: isActive }">Vue CSS ์ ์ฉ</div>
<button v-on:click="toggle">VueCSS</button>
</div>
<script>
new Vue({
el: "#app",
data: {
isActive: false,
},
methods: {
toggle: function(todo){
this.isActive = !this.isActive;
},
},
});
</script>
<style>
.active{
background: rgb(106, 148, 238);
color: white;
}
div{
width: 200px;
height: 200px;
border:1px solid #444;
}
</style>
<div id="app">
<ul>
<li :class="{completed: todo.done}" :style="myStyle" v-for="todo in todos">
<button @click="complete(todo)" class="btn">์๋ฃ</button>
</li>
</ul>
</div>
<script>
new Vue({
el: '#app',
data:{
todos: [
{
msg: '5์๊ฐ ์ ์๊ธฐ',
done: false,
},
{
msg: '์๊ณ ๋ฆฌ์ฆ 1์๊ฐ ๊ณต๋ถํ๊ธฐ',
done: false,
},
{
msg: 'Vue 1์๊ฐ ๊ณต๋ถํ๊ธฐ',
done: false,
},
],
myStyle: {
fontSize: '25px',
},
},
methods : {
complete(todo){
todo.done = !todo.done;
}
}
})
</script>
<style>
.completed{
text-decoration: line-through;
font-size: italic;
}
</style>