数据渲染

插值表达式

{{ number + 1 }}
{{ ok ? 'YES' : 'NO' }}
<div v-text="message"></div><!--会进行HTML转义-->
<div v-html="message"></div>
<!-- 完整语法 -->
<a v-bind:href="url">...</a>
<!-- 缩写 -->
<a :href="url">...</a>

表单绑定

<!-- 绑定输入域 -->
<input type="text" v-model="user.password"/>
<!-- 绑定单选框 -->
<input type="radio" id="male" value="1" v-model='gender'>
<input type="radio" id="female" value="2" v-model='gender'>
<!-- 绑定复选框 hobby要定义成数组,否则不能多选 -->
<input type="checkbox" id="ball" value="1" v-model='hobby'>
<input type="checkbox" id="sing" value="2" v-model='hobby'>
<input type="checkbox" id="code" value="3" v-model='hobby'>
<!-- 绑定下拉框,occupation必须是数组 -->
<select v-model='occupation' multiple>
    <option value="0">请选择职业...</option>
    <option value="1">教师</option>
    <option value="2">软件工程师</option>
    <option value="3">律师</option>
</select>

修饰符

<!-- .number:转换为数值 -->
<input type="text" v-model.number="value">
<!-- .trim:去掉首尾空格 -->
<input type="text" v-model.trim="value">
<!-- .lazy:在失去焦点 或者 按下回车键时才更新 -->
<input type="text" v-model.lazy="value">

列表渲染

<li v-for="(value,index) in list" :key="value.id">{{value}} and {{index}}</li>
<ul>
  <li v-for="(value,key,index) in object">
    {{key}} : {{ value }}
  </li>
</ul>

条件渲染

v-if

<!--  flag为true时才被<渲染> -->
<span v-if="flag">content</span>
<div v-if="Math.random() > 0.5">
  Now you see me
</div>
<div v-else>
  Now you don't
</div>
<div v-if="type === 'A'">
  A
</div>
<div v-else-if="type === 'B'">
  B
</div>
<div v-else-if="type === 'C'">
  C
</div>
<div v-else>
  Not A/B/C
</div>

v-show

<!--  flag为true时才被<显示> -->
<span v-show="flag">content</span>

样式绑定

<!-- 当isActive为true时,这个标签就会增加active这个类,反之会删除active这个类 -->
<h2 :class="{ 'active': isActive }">home</h2>
<h2 :class="{ active: isActive }">home</h2>

数组语法

<div v-bind:class="[activeClass, errorClass]"></div>
data: {
  activeClass: 'active',
  errorClass: 'text-danger'
}

渲染为

<div class="active text-danger"></div>

拼接字符串

<div v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }"></div>
data: {
  activeColor: 'red',
  fontSize: 30
}

样式对象

<div v-bind:style="styleObject"></div>
data: {
  styleObject: {
    color: 'red',
    fontSize: '13px'
  }
}