使用v-bind给标签class设置动态的值
语法:
<style>
.red_str {
color: red;
}
</style>
</head>
<body>
<div id="app">
<!--
:class="{类名:布尔值}"
场景: vue 变量控制标签是否应该有类名
-->
<p :class="{'red_str':bool}">动态class</p>
</div>
</body>
<script>
var vm = new Vue({
el: '#app',
data: {
bool: true,
},
})
</script>
给标签动态设置style的值
语法:
<body>
<div id="app">
<!--
语法:
:style="{css属性:值}"
-->
<p :style="{backgroundColor:colorStr,color:str,border:borStr}">
动态style
</p>
<p :style="{'background-color':colorStr,color:str,border:borStr}">
动态style
</p>
</div>
</body>
<script>
var vm = new Vue({
el: '#app',
data: {
colorStr: 'red',
str: '#fff',
borStr: '5px solid blue',
},
})
</script>
转换格式,过滤器就是一个函数,传入值返回处理后的值
过滤器只能用在 插值表达式 和v-bind 表达式
场景:
语法:
<body>
<div id="app">
<p>原来的样子:{{msg}}</p>
<!--
2:过滤器使用
语法: {{值|过滤器名字}}
-->
<p>{{msg | toUp}}</p>
<p>{{msg | reverse}}</p>
</div>
<hr />
<div id="main">
{{str }}
<p>{{str | reverse}}</p>
</div>
</body>
<script>
// 全局过滤器 任何一个vue文件中都可以使用
/*
Vue.filter("过滤器的名字",(val)=>{return 处理后的值})
*/
Vue.filter('reverse', (val) => {
return val.split('').reverse().join('')
})
var vm = new Vue({
el: '#app',
data: {
msg: 'hello vue',
},
// 局部--局部--过滤器
// 只能在当前vue文件(vue实例)中使用
/*
filters:{
过滤器1(val){
return 处理后的值
},
过滤器2(val){
return 处理后的值
}
}
*/
filters: {
toUp(val) {
return val.toUpperCase()
},
},
})
// ---------------------------
var aa = new Vue({
el: '#main',
data: {
str: 'good bye',
},
})
</script>
可同时使用多个过滤器,或给过滤器传参
语法:
原来的样子{{msg}}
翻转过滤器{{msg | reverse("-")}}
{{msg|toUp|reverse("|")}}
鼠标停留
一个数据依赖另外一些数据计算而来的结果
(一个变量,值要通过计算得到,变量要在computed中定义)
语法:
computed:{
'计算属性名'(){
return 值
}
}
代码
{{num}}
计算属性 基于他们的依赖项的值结果进行缓存的,只要依赖的变量不变,都直接从缓存取结果

{{reverseMessage}}
{{reverseMessage}}
{{reverseMessage}}
{{getMessage()}}
{{getMessage()}}
{{getMessage()}}
计算属性也是变量 ,如果想要直接赋值,需要使用完整写法
语法:
computed:{
‘属性名’:{
set(值){
},
get(){
}
}
}
需求:
计算属性给v-model使用
姓名