<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>2、vue属性计算,监听器,过滤器</title>
<script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div id="app">
{{cpCount|ftVal}}
<hr>
{{c}}
<button @click="changeC">变更值</button>
</div>
</body>
<script>
/**
1、计算属性 在 computed 中定义方法 在方法中计算属性 属性变化后 会重新渲染视图
2、过滤器 局部过滤器 和 全局过滤器 (局部过滤器和全局过滤器 如果 名称一样的话 会使用 局部过滤器过滤值)
------声明------
局部过滤器在当前对象内部以 filters声明,作用域 : 只能在当前对象中使用
filters:{
过滤器名称:function(过滤器处理的值){
return 处理后的值;
}
}
全局过滤器 使用 Vue.filter 声明,作用域 : 在任何地方使用
Vue.filter(过滤器名,function(过滤器处理的值){
return 处理后的值;
});
------使用------
需要过滤的值|过滤器名称
*/
//如果值大于1 显示 大于1 或 小于 等于1
Vue.filter('ftVal',function(val){
return val > 1 ? '大于1':'小于等于1';
});
new Vue({
el:'#app',
data(){
return {
a:1,
b:2,
c:666
};
},
computed:{//计算属性
cpCount:function(){
return this.a + this.b;
}
},
watch:{//监听属性
c:function(nVal,oVal){
console.log(nVal,oVal);
}
},
filters:{//过滤器
ftVal:function(val){
return val > 2 ? '大于2':'小于等于2';
}
},
methods:{
changeC:function(){
this.c = Math.random();
}
}
});
</script>
</html>