




methods에서는 화살표 함수 쓰면 안됨const app = new Vue({
})eldatav-bind, v-on과 같은 directive에서도 사용 가능methodsv-on과 같은 directive에서도 사용 가능this 키워드를 통해 접근 가능this는 Vue 인스턴스가 아님computedfilterv-bind를 이용할 때 가능|와 함께 추가되어야 함<span>메시지: {{ message }}</span><span v-html="rawHtml"></span><div v-bind:id="dynamicId"></div>{{ number + 1}}{{ message.split('').reverse().join('')}}:을 통해 전달인자를 받을 수도 있음.으로 표시되는 특수 접미사Element의 textContent를 업데이트
내부적으로 interpolation 문법이 v-text로 컴파일 됨
<body>
<div id="app">
<p v-text="message"></p>
</div>
<script>
const app = new Vue({
el: '#app',
data: {
message: 'Hello'
}
})
</script>
</body>
화면 상에 Hello가 나타나게 됨
<body>
<div id="app">
<p v-html="message"></p>
</div>
<script>
const app = new Vue({
el: '#app',
data: {
message: '<strong>Hello</strong>'
}
})
</script>
</body>"display: none")<body>
<div id="app">
<p v-show="isTrue">TRUE</p>
<p v-show="isFalse">FALSE</p>
</div>
<script>
const app = new Vue({
el: '#app',
data: {
isTrue: true,
isFalse: false
}
})
</script>
</body>v-if에 비해 상대적으로 렌더링 비용이 높음<body>
<div id="app">
<p v-if="myType === 'A'">A</p>
<p v-else-if="myType === 'B'">B</p>
<p v-else>NOT A/B</p>
</div>
<script>
const app = new Vue({
el: '#app',
data: {
myType: 'A'
}
})
</script>
</body>item in items 구문 사용v-for 사용 시 반드시 key 속성을 각 요소에 작성v-if와 함께 사용하는 경우 v-for가 우선순위가 더 높음v-if와 v-for를 동시에 사용하지 말 것<body>
<div id="app">
<div v-for="(fruit, idx) in fruits" :key="idx">
{{ idx }} => {{ fruit }}
</div>
<div v-for="(value, key) in todo">
{{ key }} : {{ value }}
</div>
</div>
<script>
const app = new Vue({
el: '#app',
data: {
fruits: ['사과', '메론', '딸기'],
todo: {
name: '청소하기',
completed: false
}
}
})
</script>
</body>v-on:click -> @click<body>
<div id="app">
<button v-on:click="alertHello"></button>
<button @click="alertHello"></button>
</div>
<script>
const app = new Vue({
el: '#app',
methods: {
alertHello: function () {
alert('Hello')
}
}
})
</script>
</body>v-bind:href -> :href<body>
<div id="app">
<img v-bind:src="imgSrc" alt="">
<img :src="imgSrc" alt="">
</div>
<script>
const app = new Vue({
el: '#app',
data: {
imgSrc: 'https://.....'
}
})
</script>
</body>.lazy.number.trim<body>
<div id="app">
<p>{{ message }}</p>
<input type="text" v-model="message">
</div>
<script>
const app = new Vue({
el: '#app',
data: {
message: '입력해보세요'
}
})
</script>
</body>created() 많이 사용