【前后端】Vue 基本使用方式(下)—— 条件渲染、双向绑定、事件绑定


文章目录

  • 前言
  • [定义概念 + 缩写](#定义概念 + 缩写)
    • [1. 条件渲染(Conditional Rendering)](#1. 条件渲染(Conditional Rendering))
    • [2. 双向绑定(Two-way Binding)](#2. 双向绑定(Two-way Binding))
    • [3. 事件绑定(Event Binding)](#3. 事件绑定(Event Binding))
  • 性质
  • 使用步骤
  • [Python 代码块示例(保持模板一致)](#Python 代码块示例(保持模板一致))
  • [Matlab 示例](#Matlab 示例)
  • [C 语言代码块](#C 语言代码块)
  • 总结
  • 参考文献

前言

本文继续使用 Vue 3 的基础语法,介绍开发中最常用的三大核心功能:

  • 条件渲染(v-if / v-else-if / v-else)
  • 双向绑定(v-model)
  • 事件绑定(v-on / @)

这些特性是前端模块交互的基础,掌握后即可处理大部分动态页面逻辑。


定义概念 + 缩写

1. 条件渲染(Conditional Rendering)

根据表达式决定是否渲染某段 DOM。

指令包括:

  • v-if
  • v-else-if
  • v-else

特点:只有条件为真,DOM 才会被挂载到页面上


2. 双向绑定(Two-way Binding)

Vue 中由 v-model 实现,用于:

  • 表单输入项 ↔ data 中的数据
  • 任意一方改变都会同步另一方

用于 <input>、<textarea>、<select> 最多。


3. 事件绑定(Event Binding)

为元素绑定事件的方法,写法:

  • 全写:v-on:click="fn"
  • 简写:@click="fn"(最常用)

常见事件:clickinputchangekeyup......


性质

条件渲染的性质

  • 完全移除/创建 DOM,而不是隐藏显示(与 v-show 不同)
  • 适合场景:分支渲染较重的组件/区块
  • 动态表达式可直接判断

双向绑定的性质

  • 表单值变化 ➜ data 数据变化
  • data 变化 ➜ input 值实时变化
  • 底层由 v-bind:value + @input 组合而成

事件绑定的性质

  • 支持传参:@click="fn(123)"
  • 可与 data/methods 交互
  • this 指向 Vue 实例(Options API)

使用步骤


一、条件渲染(v-if / v-else-if / v-else)

以下示例来自你的课件截图:

vue 复制代码
<template>
  <div>
    <div v-if="sex == 1">
      男
    </div>

    <div v-else-if="sex == 2">
      女
    </div>

    <div v-else>
      未知
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return { sex: 1 }
  }
}
</script>

说明

  • sex 为 1 → 显示"男"
  • sex 为 2 → 显示"女"
  • 其他 → "未知"

这是用户信息展示、身份状态等场景中最常用的逻辑分支。


二、双向绑定(v-model)

课程截图中的示例:

vue 复制代码
<template>
  <div>
    <div>
      双向绑定:{{ name }}
      <input type="text" v-model="name" />
      <input type="button" value="改变" @click="handleChange"/>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return { name: '张三' }
  },
  methods: {
    handleChange() {
      this.name = '李四'
    }
  }
}
</script>

执行流程

  • 输入框改变 → name 自动变
  • 点击按钮 → name 变成 "李四"
  • 双向绑定展示 → 自动更新页面

三、事件绑定(v-on / @)

来自第三张截图:

vue 复制代码
<template>
  <div>
    <div>
      <input type="button" value="保存" v-on:click="handleSave" />
      <input type="button" value="保存" @click="handleSave" /><br>
    </div>
  </div>
</template>

<script>
export default {
  data() { 
    return { name: '张三' }
  },
  methods: {
    handleSave() {
      alert(this.name)
    }
  }
}
</script>

说明

  • 两个按钮效果完全一致
  • 推荐使用 @click 更简洁
  • this 始终指向 Vue 实例

Python 代码块示例(保持模板一致)

python 复制代码
def show_gender(sex):
    return "男" if sex == 1 else "女" if sex == 2 else "未知"

print(show_gender(1))

Matlab 示例

matlab 复制代码
sex = 1;
if sex == 1
    disp("男");
elseif sex == 2
    disp("女");
else
    disp("未知");
end

C 语言代码块

c 复制代码
int sex = 1;
printf("%s", sex == 1 ? "男" : (sex == 2 ? "女" : "未知"));

总结

本文介绍了 Vue 中三个最核心的页面交互基础:

功能 指令 用途
条件渲染 v-if / v-else-if / v-else 根据条件动态渲染 DOM
双向绑定 v-model 表单与数据同步
事件绑定 v-on / @ 绑定事件,响应用户操作

掌握这些后,你已经能编写基础的交互型页面。

推荐下一篇学习内容:

  • 列表渲染:v-for
  • 计算属性:computed
  • 侦听器:watch

如果你愿意,我可以继续写下一篇:

《Vue 基本使用方式(下)------ 列表渲染 v-for 与 key 的作用》


参考文献

1 Vue 官方文档:https://vuejs.org/


相关推荐
前端百草阁几秒前
JavaScript 设计模式(23 种)
开发语言·前端·javascript·设计模式
用户69371750013845 分钟前
AI 领域的 Harness,到底是什么意思?
android·前端·后端
spider_xcxc11 分钟前
Redis 深度实践:安全管控、性能压测与持久化分析(二)
运维·前端·redis·云计算·bootstrap·运维开发
乘风gg11 分钟前
代码都已经让 AI 写了,为什么有些人却更慌了?
前端·ai编程·claude
我不是外星人22 分钟前
一键还原任意网站,这套 Playwright + 多 Agent 工程流太猛了
前端·后端·ai编程
用户0595401744626 分钟前
AI 客服突然“失忆”,排查 6 小时发现 LangChain 记忆存储的 3 个致命坑
前端·css
IT_陈寒1 小时前
Vue的v-if和v-show,我竟然用错了这么久
前端·人工智能·后端
云絮.1 小时前
计算机相关工作原理
服务器·前端·数据库
随风一样自由1 小时前
【前端+React+缓存竞态】导航切换缓存刷新机制
前端·react.js·缓存
恋猫de小郭1 小时前
Flutter 开发怎么做 Agent ?从工程实战详细给你解读下
android·前端·flutter