๋ฐ์ํ
Vue Directive(๋ทฐ ๋๋ ํฐ๋ธ)๋ HTML ํ๊ทธ ์์ v- ์ ๋์ฌ๋ฅผ ๊ฐ์ง๋ ๋ชจ๋ ์์ฑ๋ค์ ์๋ฏธํ๋ค.
๋๋ ํฐ๋ธ๋ ํ๋ฉด์ ์์๋ฅผ ๋ ์ฝ๊ฒ ์กฐ์ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ด๋ค. ๋ทฐ์ ๋ฐ์ดํฐ ๊ฐ์ด ๋ณ๊ฒฝ๋์์ ๋ ํ๋ฉด์ ์์๋ค์ด ๋ฆฌ์กํฐ๋ธํ๊ฒ ๋ฐ์ํ์ฌ ๋ณ๊ฒฝ๋ ๋ฐ์ดํฐ ๊ฐ์ ๋ฐ๋ผ ๊ฐฑ์ ๋๋ค.
์ฆ, ํ๋ฉด์ ์์๋ฅผ ์ง์ ์ ์ดํ ํ์ ์์ด ๋ทฐ์ ๋๋ ํฐ๋ธ๋ฅผ ํ์ฉํ์ฌ ํ๋ฉด ์์๋ค์ ์กฐ์ํ ์ ์๋ค.
v-if | ์ง์ ํ ๋ทฐ ๋ฐ์ดํฐ ๊ฐ์ ์ฐธ, ๊ฑฐ์ง ์ฌ๋ถ์ ๋ฐ๋ผ ํด๋น HTML ํ๊ทธ๋ฅผ ํ๋ฉด์ ํ์ํ๊ฑฐ๋ ํ์ํ์ง ์๋๋ค. |
v-for | ์ง์ ํ ๋ทฐ ๋ฐ์ดํฐ์ ๊ฐ์๋งํผ ํด๋น HTML ํ๊ทธ๋ฅผ ๋ฐ๋ณต ์ถ๋ ฅํ๋ค. |
v-show | v-if์ ์ ์ฌํ๋ค. ๋ค๋ง, v-if๋ ํด๋น ํ๊ทธ๋ฅผ ์์ ํ ์ญ์ ํ์ง๋ง v-show๋ css ํจ๊ณผ๋ง display:none;์ผ๋ก ์ฃผ์ด ์ค์ ํ๊ทธ๋ ๋จ์ ์๊ณ ํ๋ฉด ์์ผ๋ก๋ง ๋ณด์ด์ง ์๋๋ค. |
v-bind | HTML ํ๊ทธ์ ๊ธฐ๋ณธ ์์ฑ๊ณผ ๋ทฐ ๋ฐ์ดํฐ ์์ฑ์ ์ฐ๊ฒฐํ๋ค. |
v-on | ํ๋ฉด ์์์ ์ด๋ฒคํธ๋ฅผ ๊ฐ์งํ์ฌ ์ฒ๋ฆฌํ ๋ ์ฌ์ฉํ๋ค. ์๋ฅผ ๋ค์ด, v-on:click์ ํด๋น ํ๊ทธ์ ํด๋ฆญ ์ด๋ฒคํธ๋ฅผ ๊ฐ์งํ์ฌ ํน์ ๋ฉ์๋๋ฅผ ์คํํ ์ ์๋ค. |
v-model | ํผ(form)์์ ์ฃผ๋ก ์ฌ์ฉํ๋ ์์ฑ. ํผ์ ์ ๋ ฅํ ๊ฐ์ ๋ทฐ ์ธ์คํด์ค์ ๋ฐ์ดํฐ์ ์ฆ์ ๋๊ธฐํํ๋ค. ํ๋ฉด์ ์ ๋ ฅ๋ ๊ฐ์ ์ ์ฅํ์ฌ ์๋ฒ์ ๋ณด๋ด๊ฑฐ๋ watch์ ๊ฐ์ ๊ณ ๊ธ ์์ฑ์ ์ด์ฉํ์ฌ ์ถ๊ฐ ๋ก์ง์ ์ํํ ์ ์๋ค. <input>, <select>, <textarea> ํ๊ทธ์๋ง ์ฌ์ฉํ ์ ์๋ค. |
<!DOCTYPE html>
<head>
<title>Vue Template - Directives</title>
</head>
<body>
<div id="app">
<a v-if="flag">๋์ Vue.js</a>
<ul>
<li v-for="system in systems">{{ system }}</li>
</ul>
<p v-show="flag">๋์ Vue.js</p>
<h5 v-bind:id="uid">๋ทฐ ์
๋ฌธ์</h5>
<button v-on:click="popupAlert()">๊ฒฝ๊ณ ์ฐฝ ๋ฒํผ</button>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
new Vue({
el: '#app',
data: {
flag: true,
systems: ['android', 'ios', 'window'],
uid: 10
},
methods: {
popupAlert: function() {
return alert('๊ฒฝ๊ณ ์ฐฝ ํ์')
}
}
})
</script>
</body>
</html>
๋ฐ์ํ
'JavaScript > Vue' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Vue.js] watch (0) | 2022.06.06 |
---|---|
[Vue.js] computed ์์ฑ๊ณผ methods ์์ฑ์ ์ฐจ์ด์ (0) | 2022.06.06 |
[Vue.js] Vue์์์ ์๋ฐ์คํฌ๋ฆฝํธ ํํ์ (0) | 2022.06.06 |
[Vue.js] v-bind (0) | 2022.06.06 |
Named View (0) | 2022.06.06 |
๋๊ธ