v-bind 单向数据绑定 可简写为 :
v-modole 双向数据绑定
methods 写方法的地方 是一个对对象
例子 methods:{ changeName(){ console.log() } }
computed 计算属性 复杂逻辑写在这里
class :class 可以绑定动态类名
style :style 是一个对象 里面和React写行内样式一样 不过是{{}} 变为 '{}'
<style>
.basic:{
fontSize:'10px'
}
</style>
new Vue({
el:'#root',
data:function(){
return {
xx:'red',
xx1:['blue,pink'],
xx2:{
yellow:true,
},
styleObj:{
fontSize: '30px'
}
}
}
})
**:class**
例如 <div class='basic' :class='xx'> </div>
所绑定的动态属性名 XX 是字符串时 适用于 样式类名不确定 需要动态指定
<div class='basic' :class='xx1'> </div>
所绑定的动态属性名 XX 是数组时 适用于 要用的样式个数不确定,类名也不确定 需要动态指定
<div class='basic' :class='xx2'> </div>
所绑定的动态属性名 XX 是字符串时 适用于 要用的样式个数确定,样式类名确定 但可决定用不用某个类名
**:style**
<div :style='{fontSize:'30px'}'>
直接把样式写在行内
<div :style='styleObj'>
把样式写成对象放在data对象中
- v-show 元素的显示隐藏 接收一个布尔值 不会移除dom元素 用于条件渲染 适用于高频率切换
- v-if 接受一个表达式 符合条件显示 不然会清除dom 用于条件渲染 用于低频率切换 元素可能无法被获取
- v-else-if 接受一个表达式 用于和v-if一起使用 中间不可中断
- v-else 不管啥都会执行 不接受参数 直接执行
实例
new Vue({
el: '#root',
data: function () {
return {
display: false,
num: 0,
styleObj: {
marginRight: '10px'
}
}
},
methods: {
add() {
this.num++
},
remove() {
this.num--
},
visibleChange() {
this.display = !this.display
}
}
})
<div id="root">
<div v-show="display"></div>
<div v-if="num===0">react</div>
<div v-else-if="num===1">Vue</div>
<div v-else>angular</div>
<teleport v-if="display">
<button @click="remove" class="btm">--------</button>
<button @click="add" :style="{marginRight:'10px'}">+++++</button>
</teleport>
<div>
<button @click="visibleChange" :style="styleObj">visible</button>
</div>
</div>