Open keyfall opened 4 years ago
v-once 执行一次性插值,不会根据数据改变而改变
<span v-once>这个将不会改变: {{ msg }}</span>
v-html 输出html
<p>Using v-html directive: <span v-html="rawHtml"></span></p>
v-bind,v-on缩写
v-bind
<a :href="url">...</a>
<a :[key]="url"> ... </a>
v-on
<a @click="doSomething">...</a>
<a @[event]="doSomething"> ... </a>
计算属性,computed属性,为了不把表达式放在{{}}中,代码清晰
<div id="app">
<p>{{ message }}</p>
<p>{{ reversedMessage}}</p>
</div>
<script>
var app = new Vue({
el:'#app',
data:{
message:"zosngminsdf",
},
computed:{
reversedMessage: function(){
return this.message.split('').reverse().join('')
}
}
})
</script>
计算属性是基于它们的响应式依赖进行缓存的,比如reversedMessage是基于message的,如果message改变了,那么reversedMessage也会改变,否则只会输出原来的值
计算属性setter ,fullname改变,firstname和lastname改变
<div id="app">
{{fullName}}
</div>
<script>
var app = new Vue({
el:'#app',
data:{
firstName:'foo',
laskName:'bar'
},
methods:{
timemethod: function(){
return new Date().to
}
},
computed:{
fullName: {
get:function(){
return this.firstName + ' '+this.laskName
},
set:function(newV){
var names = newV.split(' ')
this.firstName = names[0]
this.laskName = names[names.length -1]
}
}
}
})
</script>
绑定class
<div
class="static"
v-bind:class="{ active: isActive, 'text-danger': hasError }"
></div>
data: {
isActive: true,
hasError: false
}
也可以绑定一个字典对象
<div v-bind:class="classObject"></div>
data: {
classObject: {
active: true,
'text-danger': false
}
}
也可以绑定一个计算属性,可以实现满足多个情况时显示的功能
<div v-bind:class="classObject"></div>
data: {
isActive: true,
error: null
},
computed: {
classObject: function () {
return {
active: this.isActive && !this.error,
'text-danger': this.error && this.error.type === 'fatal'
}
}
}
安装
hello实例
v-bind绑定
v-for