Vue.js实现父子组件v-model绑定教程
版权申诉
149 浏览量
更新于2024-08-20
收藏 17KB DOCX 举报
Vue.js 是一个流行的前端框架,它提供了一种高效的数据绑定机制,使得开发人员可以方便地在组件间同步数据。在 Vue 中,`v-model` 指令用于创建双向数据绑定,这在构建复杂的表单控件或者实现父子组件间的通信时非常有用。下面我们将深入探讨如何在 Vue 中使用 `v-model` 进行跨组件的绑定。
### 父组件与子组件的绑定
在 Vue 中,父组件可以通过属性(props)向子组件传递数据,而子组件则通过自定义事件($emit)将数据回传给父组件。`v-model` 指令巧妙地结合了这两个过程,使得在模板中实现双向数据绑定变得简单。
#### 父组件
```html
<template>
<div>
<!-- 使用子组件,并使用v-model绑定 -->
<About v-model="father"/>
</div>
</template>
<script>
import About from './About.vue';
export default {
components: {
About,
},
data() {
return {
// 初始化数据
father: '',
};
},
watch: {
// 监听 father 的变化
father(val) {
console.log(val);
},
},
};
</script>
```
在这个例子中,`v-model` 在父组件模板中被用来连接 `father` 数据到子组件。当 `father` 的值发生变化时,`watch` 方法会触发,从而可以执行相应的逻辑,比如日志记录或业务处理。
#### 子组件
```html
<template>
<div>
<!-- 使用v-model绑定 -->
<input type="text" v-model="son">
</div>
</template>
<script>
export default {
props: {
// 接收父组件的信息
value: {
type: String,
default: '',
},
},
data() {
// 赋空值
return { son: '' };
},
watch: {
// 把value赋值给son
value() {
this.son = this.value;
},
// 把son传递给父组件
son() {
this.$emit('input', this.son);
},
},
};
</script>
```
子组件中,我们使用 `props` 来接收来自父组件的 `value`。同时,`v-model` 在子组件的输入框上设置,将 `son` 数据绑定到输入框的值。`watch` 监听器用于确保 `son` 和 `value` 的同步,当 `son` 改变时,通过 `$emit('input', this.son)` 触发自定义的 'input' 事件并将新的值传递回去,这样父组件就可以接收到子组件的变化。
### `v-model` 原理简析
`v-model` 实际上是 Vue 中的一个语法糖,它背后的工作原理是同时设置 `props` 和监听 `input` 事件。在子组件中,`v-model` 会解析成两个部分:`props` 接受父组件的值,以及 `$emit('input', value)` 用于将更改的值发送回父组件。
### 总结
Vue 的 `v-model` 提供了一种直观且强大的方式来处理组件间的双向数据绑定。通过这个机制,子组件不仅可以获取父组件的数据,还可以在数据发生变化时通知父组件,使得组件间的通信变得简单明了。理解并熟练运用 `v-model` 对于开发复杂的 Vue 应用程序至关重要。
2021-12-29 上传
2021-12-29 上传
2021-12-30 上传
2021-12-29 上传
2021-12-29 上传
2021-12-28 上传
2021-12-29 上传
2021-12-29 上传
2021-12-29 上传
mmoo_python
- 粉丝: 6667
- 资源: 1万+
最新资源
- wadegao.github.io:韦德高的个人主页
- pcsetup:从零开始设置我的个人计算机的脚本
- A2G-2020.0.1-py3-none-any.whl.zip
- 升降台程序11.rar
- MDN-note
- Kyhelper:考研助手,利用了Bmob移动后端云服务平台和腾讯旗下的微社区,感谢imooc网和校园小菜的技术指导。 给考研学子们提供一个方便的工具,可以让他们收起鼠标和键盘,逃离喧闹狼藉的宿舍,在自习室里用手机就能查看大部分最重要的考研相关信息。在考研备考过程中要时常打开电脑上网到处浏览与考研相关的信息,生怕错过什么重要通知,那么,如果能有这么一款手机应用,它能够给考研学生带来一定的帮助,成为学子贴身的考研小助手,从而使他们更好地高效率的投入到自己的复习当中。 比如说,看书累了
- michaelkulbacki.github.io:我的个人网站上展示了我的计算机科学项目和摄影作品
- gmod-Custom_FOV:Garry Mod的插件,可以更改fov值
- wfh.vote
- minesweeper-cljs:使用leiningen和figwheel在ClojureScript中实现扫雷游戏的实现
- 2013-2019年重庆理工大学825管理学考研真题
- gulp-font2css:使用 Gulp 将字体文件编码为 CSS @font-face 规则
- 3.14159.in:pi数字的彩色渲染
- AABBTree-0.0a0-py2.py3-none-any.whl.zip
- DataMiningLabTasks
- 机器学习文档(transformer, BERT, BP, SVD)