一、过滤器
过滤器(Filter)是vue为开发者提供的功能,常用于文本的格式化。过滤器可以用在两个地方:插值表达式和v-bind属性绑定。
过滤器应该被添加在javaScript表达式的尾部,由“管道符”进行调用。
//局部过滤器
{{message | capi}}
//script
data:{
message:'hello vue.js'
}
filters:{
capi(val){
const first = val.charAt(0).toUpperCase()
const other = val.slice(1)
return first + other
}
}
//全局过滤器
{{message | capi}}
//script
Vue.filter('capi',function(str){
const first = str.charAt(0).toUpperCase()
const other = str.slice(1)
return first + other
})
二、侦听器
watch侦听器允许开发者监视数据的变化,从而针对数据的变化做特定的操作
//script
data:{
username:''
}
//方法格式
//缺点1:不会自动触发
//缺点2:如果侦听器的是一个对象,如果对象中的属性发生了变化,不会触发侦听器
watch:{
username(newVal){
if (newVal==='') return
$.get('https://www.escook.cn/api/finduser/'+ newVal,function(result){
console.log(result)
})
}
}
//对象格式
//优点1:可以通过immediate自动触发
//优点2:可以通过deep选项,让侦听器深度监听对象中每个属性的变化
watch:{
username:{
handler(newVal,oldVal){
console.log(newVal,oldVal)
},
immediate:true
}
}
方法格式
缺点1:不会自动触发
缺点2:如果侦听器的是一个对象,如果对象中的属性发生了变化,不会触发侦听器
对象格式
优点1:可以通过immediate自动触发
优点2:可以通过deep选项,让侦听器深度监听对象中每个属性的变化
三、计算属性
计算属性指的是通过一系列运算之后,最终得到的一个属性值。
这个动态计算出来的属性值可以被模板结构或methods方法使用。
特点:
1.定义的时候要被定义成"方法"
2.在使用计算属性的时候,当普通的属性使用即可
好处:
1.实现了代码的复用
2.只要计算属性中依赖的数据源变化了,则计算属性会自动重新求值。
<div>
<input type="text" v-model.number="a"><input>
<input type="text" v-model.number="b"><input>
<input type="text" v-model.number="c"><input>
<div class="box" :style="{backgroundColor:rgb}">
</div>
//script
data:{
r:0,
g:0,
b:0
}
computed:{
rgb(){
return `rgb(${this.r},${this.g},${this.b})`
}
}