const App = {
data() {
return {
firstName : 'Joaquin',
lastName : 'Phoenix'
}
},
computed: {
fullName:{
get() {
return `${this.firstName} ${this.lastName}`
}
set(newValue) { //'Joaquin Phoenix'
const names = newValue.split(' ')
//['Joaquin', 'Phoenix']
this.firstName = names[0]
this.lastName = names[names.length - 1]
//middleName이 있는 경우에도
//lastName을 가져옴
}
}
}
}
const vueModel = Vue.createApp(App).mount('#app')
const App = {
data() {
return {
users: [
{id : 1, name : 'A'}
{id : 2, name : 'A'}
{id : 3, name : 'A'}
]
}
},
watch: {
users:{
handler() {
console.log(this.user)
},
deep: true,
//deep이 true인 경우 변경사항에 대해
//watch 콜백 실행
immediate: true
}
}
}
<!-- className : dataName -->
<div :class="{ active: active, small : small }"></div>
<div :class="{ active, small }"></div>
<div :class="{ 'title--active' : active}"></div>
<button @click="toggle">Click me!</button>
<div :class="classObj"> {{ msg }} </div>
const App = {
data(){
return {
msg: 'Hello Vue',
active: false,
small: true
}
},
computed:{
classObj() {
return {
active: this.active,
'title--small color--tomato': this.small
//className : data
}
}
},
methods: {
toggle() {
this.active = !this.active
}
}
}
const vueModel = Vue.createApp(App).mount('#app')
<div @click = "toTomato(); increaseWidth();">
Hello Vue!
</div>
+vue.js에서 css 속성의 key값을 ''로 묶어서 데시를 사용하는 방식 외에도 카멜케이스도 지원하기 때문에 vue.js에서 자동으로 이를 변경해 줌
<div :style = "{ color, backgroundColor }"></div>
<div :style="[titleStyleObj, styleObj]"></div>
[v-cloak]{
display: none;
}
// css를 통해 화면에 {{ msg }} 라고 출력되는 것을 방지
<button @click="toggle">Click Me!</button>
<div v-show="isShow" v-cloak>{{ msg }}</div>
const App ={
data() {
return {
msg: 'Hello Vue!',
isShow : false
}
},
methods:{
toggle() {
this.isShow = !this.isShow
}
}
}
const vueModel = Vue.createApp(App).mount('#app')
<ul>
<!--template를 활용하여 두가지를
동시에 사용하지 않도록 조정-->
<template v-for="user in users">
<li v-if="user.isActive">{{ user.name }}</li>
</template>
</ul>
오늘도 vue강의를 들었다. 강의 내용이 많아서 집중해서 들어야하기 때문에 시간이 오래걸렸다. 그래서 목표한 부분까지 공부하지 못해서 아쉽다. vue를 배우면서 바닐라js와 비교하게 됐는데 원하는 기능을 보다 쉽게 구현할 수 있다는 점이다. 그리고 html과 바로 연결해서 사용하는 것이 새롭고 재밌다! 바닐라js로 구현한 프로젝트들을 vue를 배워서 다시 구현해보고 싶다.
내일은 vue강의와 완성못한 css프로젝트를 수정할 계획이다!