- watch中使用到的属性必须在data中声明,可以有异步操作。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="app">
{{fullName}}
</div>
</body>
</html>
<script src="node_modules/vue/dist/vue.js"></script>
<script>
let vm=new Vue({
el:"#app",
data:{
firstName:'Foo',
lastName:'Bar',
fullName:'Foo Bar'
},
watch:{
firstName:{
handler(newVal,oldVal){
this.fullName=newVal+this.lastName;
},
immediate:true,
deep:true
}
}
})
</script>
- computed不可以进行异步操作,不能在data中进行声明。
let vm=new Vue({
el:"#app",
data:{
firstName:'Foo',
lastName:'Bar',
},
computed:{
fullName:{
get(){
return this.firstName+this.lastName;
},
set(val){
console.log(val);
}
}
}
})
- animate过渡类名设置
6个状态.v-enter、.v-enter-active、.v-enter-to、.v-leave、.v-leave-active、.v-leave-to,其中v可以用name的名字代替。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.box{
width: 100px;
height: 100px;
background-color: red;
}
.fade-enter{
background-color: aquamarine;
}
.fade-enter-active{
background-color: burlywood;
transition: all 2s linear;
}
.fade-enter-to{
background-color: coral;
}
.fade-leave{
background-color: darkgreen;
}
.fade-leave-active{
background-color: darkred;
transition: all 2s linear;
}
.fade-leave-to{
background-color: deeppink;
}
</style>
</head>
<body>
<div id="app">
<button @click="change">按钮</button>
<transition name="fade">
<div class="box" v-if="isShow"></div>
</transition>
</div>
</body>
</html>
<script src="node_modules/vue/dist/vue.js"></script>
<script>
let vm=new Vue({
el:"#app",
data:{
isShow:false
},
methods:{
change(){
this.isShow=!this.isShow;
}
}
})
</script>