技术文档中心
首页
React
Vue
TypeScript
Kotlin
React Native
Electron
Android
首页
React
Vue
TypeScript
Kotlin
React Native
Electron
Android
  • Vue2 基础

    • Vue 学习指南
    • Vue2 快速入门
    • Vue2 模板语法
    • Vue2 组件基础
    • Vue2 计算属性与侦听器
    • Vue2 生命周期
  • Vue2 进阶

    • Vue2 组件通信
    • Vue2 插槽详解
    • Vue2 混入与自定义指令
    • Vue2 过渡与动画
    • Vuex 状态管理
  • Vue2 高级

    • Vue2 性能优化
    • Vue2 服务端渲染(SSR)
    • Vue2 源码解析
  • Vue3 基础

    • Vue3 快速入门
    • Vue3 Composition API
    • Vue3 响应式系统
    • Vue3 组件基础
    • Vue3 生命周期
  • Vue3 进阶

    • Vue3 组合式函数
    • Vue3 组件通信
    • Vue3 Teleport 与 Suspense
    • Pinia 状态管理
    • Vue Router 4
  • Vue3 高级

    • Vue3 TypeScript
    • Vue3 性能优化
    • Vue3 测试
    • Vue3 SSR
    • Vue3 源码解析
  • 实战项目

    • Vue2 实战项目
    • Vue3 实战项目
    • Vue2 迁移 Vue3

Vue2 模板语法

插值

文本

<span>Message: {{ msg }}</span>

原始 HTML

<p>Using v-html: <span v-html="rawHtml"></span></p>

属性

<div v-bind:id="dynamicId"></div>

JavaScript 表达式

{{ number + 1 }}
{{ ok ? 'YES' : 'NO' }}
{{ message.split('').reverse().join('') }}

指令

v-bind

<!-- 完整语法 -->
<a v-bind:href="url">...</a>

<!-- 缩写 -->
<a :href="url">...</a>

<!-- 动态参数 -->
<a :[attributeName]="url">...</a>

v-on

<!-- 完整语法 -->
<a v-on:click="doSomething">...</a>

<!-- 缩写 -->
<a @click="doSomething">...</a>

<!-- 动态事件 -->
<a @[eventName]="doSomething">...</a>

v-model

<input v-model="message">
<textarea v-model="message"></textarea>
<input type="checkbox" v-model="checked">
<select v-model="selected">
  <option>A</option>
  <option>B</option>
</select>

v-if / v-else / v-else-if

<div v-if="type === 'A'">A</div>
<div v-else-if="type === 'B'">B</div>
<div v-else>Not A/B</div>

v-show

<h1 v-show="ok">Hello!</h1>

v-for

<div v-for="item in items" :key="item.id">
  {{ item.text }}
</div>

<div v-for="(item, index) in items">
  {{ index }} - {{ item.message }}
</div>

<div v-for="(value, key) in object">
  {{ key }}: {{ value }}
</div>

修饰符

事件修饰符

<!-- 阻止单击事件继续传播 -->
<a @click.stop="doThis"></a>

<!-- 提交事件不再重载页面 -->
<form @submit.prevent="onSubmit"></form>

<!-- 修饰符可以串联 -->
<a @click.stop.prevent="doThat"></a>

<!-- 只有修饰符 -->
<form @submit.prevent></form>

<!-- 添加事件监听器时使用事件捕获模式 -->
<div @click.capture="doThis">...</div>

<!-- 只当在 event.target 是当前元素自身时触发处理函数 -->
<div @click.self="doThat">...</div>

<!-- 点击事件将只会触发一次 -->
<a @click.once="doThis"></a>

按键修饰符

<!-- 只有在 `key` 是 `Enter` 时调用 -->
<input @keyup.enter="submit">

<!-- 常用按键别名 -->
<input @keyup.enter="submit">
<input @keyup.tab="submit">
<input @keyup.delete="submit">
<input @keyup.esc="submit">
<input @keyup.space="submit">
<input @keyup.up="submit">
<input @keyup.down="submit">
<input @keyup.left="submit">
<input @keyup.right="submit">

系统修饰键

<!-- Alt + C -->
<input @keyup.alt.67="clear">

<!-- Ctrl + Click -->
<div @click.ctrl="doSomething">Do something</div>

v-model 修饰符

<!-- 在"change"时而非"input"时更新 -->
<input v-model.lazy="msg">

<!-- 自动将用户的输入值转为数值类型 -->
<input v-model.number="age" type="number">

<!-- 自动过滤用户输入的首尾空白字符 -->
<input v-model.trim="msg">

缩写

<!-- v-bind 缩写 -->
<a :href="url">...</a>
<a :[key]="url">...</a>

<!-- v-on 缩写 -->
<a @click="doSomething">...</a>
<a @[event]="doSomething">...</a>
最近更新: 2026/1/27 15:51
Contributors: hailong
Prev
Vue2 快速入门
Next
Vue2 组件基础