vue模板语法 <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script> <body> <div id="app"> <div> <label>姓名:<input type="text" v-model="username" ></label> <label>手机号码:<input type="text" v-model="phonenumber" ></label> <input type="button" value="提交" @click="add"> </div> <!-- ********** Begin ********** --> <!-- ********** End ********** --> </div> </body> <!-- ********** Begin ********** --> <script> </script> <!-- ********** End ********** -->
时间: 2025-05-20 13:47:16 浏览: 24
### Vue 3 模板语法概述
Vue 3 的模板语法是一种基于 HTML 扩展的语言,允许开发者通过简单的指令和表达式来动态操作 DOM 节点。所有的 Vue 模板都遵循标准的 HTML 结构,并且可以在任何支持 HTML 的环境中运行[^2]。
#### v-model 实现双向绑定
`v-model` 是 Vue 提供的一个用于实现双向数据绑定的指令,在表单输入控件或者自定义组件中非常常用。默认情况下,`v-model` 使用 `modelValue` 属性作为 prop 并监听 `update:modelValue` 事件来同步父组件的数据状态[^3]。
下面是一个使用 `v-model` 绑定输入框的例子:
```html
<template>
<div>
<!-- 输入框 -->
<input type="text" v-model="message">
<!-- 显示当前输入的内容 -->
<p>您输入的是: {{ message }}</p>
</div>
</template>
<script setup>
import { ref } from 'vue'
const message = ref('') // 初始化为空字符串
</script>
```
在这个例子中,`ref` 创建了一个响应式的变量 `message`,并通过 `v-model` 将其与 `<input>` 元素绑定在一起。每当用户修改输入框中的内容时,`message` 的值会自动更新;反之亦然。
如果需要为 `v-model` 自定义名称,则可以通过指定参数的方式完成。例如:
```html
<MyComponent v-model:title="bookTitle" />
```
这里将 `v-model` 的默认行为替换为了 `title` 属性及其对应的更新事件 `update:title`[^3]。
---
#### click 事件处理机制
在 Vue 中,可以使用 `@click` 或者完整的写法 `v-on:click` 来绑定点击事件处理器。当触发该事件时,关联的方法会被调用。
以下是一个结合按钮点击切换显示隐藏功能的小型示例:
```html
<template>
<div>
<!-- 切换按钮 -->
<button @click="toggleShow">切换显示/隐藏</button>
<!-- 动态控制 h1 是否渲染 -->
<h1 v-show="isVisible">这是可见的部分!</h1>
</div>
</template>
<script setup>
import { ref } from 'vue'
// 定义一个布尔类型的响应式变量
const isVisible = ref(true)
// 方法:切换 isVisible 的值
function toggleShow() {
isVisible.value = !isVisible.value
}
</script>
```
此代码片段展示了如何利用 `v-show` 配合 `@click` 处理程序来管理页面上的元素可视性[^1]。注意,`v-show` 只是简单地调整 CSS 的 `display` 属性而不销毁或重新创建 DOM 节点。
---
### 总结
以上分别介绍了 Vue 3 中两种常见的交互方式——`v-model` 和 `@click` 事件的基础应用方法。前者主要用于构建具有实时反馈特性的界面组件,而后者则适合用来捕捉用户的动作并作出相应的逻辑反应。
阅读全文
相关推荐



















