文本
数据绑定最常见的形式就是使用双大括号的语法的文本插值
<span>姓名:{{name}}</span>
一般配合js中的data里面的数据
export default
data(){
return {
name:"小宁"
}
}
}
原始的HTML
双大括号会将数据解析为普通文本,而非html代码,为了输入真正的html,这里我们就需要是用v-html指令去解析一下
<div v-html="main"></div>
data(){
return{
main:'<a href="https://juejin.cn/user/2078503243357736">我的主页</a>'
}
}
属性Attribute
Mustache语法不能在HTML属性中使用,然而可以使用v-bind指令
<div v-bind:id="id"></div>
data(){
return{
id:'1'
}
}
温馨提示
v-bind:id这个可以简写为:id
使用javaScript表达式
在我们模板中,我们一直都只绑定简单的property键值,vue.js都提供了完全的javaScript表达式支持,比如是数值加1,三木运算啊
<div>{{ number+1 }} {{ acitive===0?'激活':'未激活' }} {{ Numnber(string_number) }}</div>
这些表达式会在当前活动实例的数据作用域下作为javaScript被解析,有个限制就是,每个绑定都只能包含单个表达式,所以下面的例子都不会生效。
<!-- 这个一个语句 不是表达式 -->
<div>{{ var a=1 }}</div>
<!-- 流程控制也不会生效 请使用三元表单式 -->
<div>{{ if (ok) {return message} }}</div>
v-if
v-if指令用于条件性的渲染一块东西,这块内容只会在指令的表达式返回true才被渲染
<div v-if="falg">显示</div>
data(){
return{
falg:true
}
}
v-else
你可以使用v-else指令表达v-if的"else块"
<p v-if="flag">显示</p>
<p v-else>隐藏</p>
v-show
另一个用于条件性展示元素的选项
<p v-show="ok">今天参加四月日新更文活动了吗?</p>
说明
v-if和v-show的区别:
v-if是"真正"的条件渲染,因为它会确保在切换过程中,条件块内的事件监听器和子组件适当地被摧毁和重建。 v-if也是惰性的,如果在厨师渲染条件为假,则什么也不做,一直等到条件第一次变为真的时候,才开始渲染条件块。 相比之下,v-show就简单得多,不管初始条件是什么,元素总会被渲染,并且只是简单地基于css进行切换。 一般来说,v-if有更高的切换开销,而v-show有更高的初始渲染开销。因此,如果需要非常频繁地切换,则使用v-shwo更好,如果在运行时条件很少改变,则使用v-if更好