Vue:自定义v-model数据双向绑定v

简介: Vue:自定义v-model数据双向绑定

示例

age 数据单向绑定

name 数据双向绑定


<template>
    <div>
        <h3>单向绑定数据</h3>
        <p>age: {
        { age }}</p>
        <p>age: <input type="text" :value="age"></p>
        
        <h3>双向绑定数据</h3>
        <p>name: {
        {name}}</p>
        <p>name: <input type="text" :value="name" @input="name=$event.target.value"></p>
    </div>
</template>


<script>
export default {
    data(){
        return {
            age: 23,
            name: "王小二"
        }
    }
}

</script>

d23.2.png


观察代码发现,name的input 多了一个事件绑定@input="name=$event.target.value"

所以,实现数据双向绑定的原理就是:

1、数据name单向传递给input;

2、input触发事件后将name的值进行了修改

自定义v-model双向绑定

child.vue

<template>
<input type="text" :value="age" @input="change($event.target.value)">
</template>


<script>
export default {
props: ["age"],

model: {
prop: "age", // 对应的变量
event: "change" // 触发事件
},

methods: {
// 把修改后的值传递回去
change(value){
console.log(value)
this.$emit('change', value)
}
}
}

</script>


main.vue

<template>
<div>
<h3>子组件v-model示例</h3>

<p>age: { {age}}</p>

<p>age: <Child v-model="age"/></p>
</div>
</template>


<script>
import Child from './child.vue';

export default {
components: {
Child
},

data(){
return {
age: 23,
}
}
}

</script>

启动调试

$ vue serve main.vue

d23.3.png


这样就实现了自定义v-model语法

原理很简单

1、父组件给子组件传值
2、子组件值修改,触发事件修改父组件值
3、父组件再将新值传递给了子组件,子组件的接收到父组件变更的值

所以还是数据还是单向流动

参考:

  1. Vue之自定义组件的v-model
  2. vue自定义组件上的v-model如何与子组件数据绑定
            </div>
目录
相关文章
|
安全 关系型数据库 MySQL
轻松入门MySQL:MySQL8权限管理详解,角色和用户操作实例(18)
轻松入门MySQL:MySQL8权限管理详解,角色和用户操作实例(18)
1683 0
|
Kubernetes Cloud Native API
云原生入门:从理论到实践的探索之旅
本文旨在为初学者提供一个关于云原生技术的全面介绍,包括其定义、核心原则、关键技术组件以及如何将这些概念应用于实际项目中。我们将通过一个简易的代码示例,展示如何在云原生环境下部署一个简单的应用,从而帮助读者更好地理解云原生技术的实践意义和应用价值。
|
机器学习/深度学习 自然语言处理 Python
Word2Vec
Word2Vec是由Google在2013年提出的词嵌入模型,能将词语转化为捕捉语义和句法关系的向量。它包含CBOW和Skip-Gram两种模型,分别通过上下文预测目标词或反之。Word2Vec在文本分类、情感分析等领域广泛应用,并可通过gensim等工具轻松实现。
259 1
|
机器学习/深度学习 自然语言处理 语音技术
智能语音识别技术的现状与未来####
在这篇文章中,我们将深入探讨智能语音识别技术的发展历程、当前的应用现状以及未来的发展趋势。通过分析该技术在不同领域的应用情况,我们可以更好地理解其重要性和潜力。此外,文章还将讨论当前面临的主要挑战和解决方案,为读者提供一个全面的视角。 ####
|
人工智能 运维 云计算
阿里云无影AI云电脑亮相 体验大幅升级
9月20日,2024云栖大会上阿里云无影AI云电脑全新亮相,基于最新的终端云计算技术和AI大模型能力,无影的综合体验大幅提升,新增了弹性升降配、双网自由切换、多端操作系统知识库问答、编码大师等AI智能体功能,为安全办公、个人娱乐带来全新的云上流畅体验,更可畅玩《黑神话:悟空》等3A游戏大作。同时,无影还宣布向开发者全面开放应用中心生态,开发者可免费入驻。
2466 15
|
安全 IDE 开发工具
Python——记录pip问题(解决下载慢、升级失败问题)
Python——记录pip问题(解决下载慢、升级失败问题)
878 1
|
弹性计算 固态存储 ice
阿里云ECS服务器2核16G、4核32G和8核64G不同配置租赁价格表
2024年阿里云服务器提供多种配置与实例规格,如2核16G、4核32G及8核64G等,用户可根据需求选择内存型r8i、通用算力型u1等不同架构。以2核16G为例,r8i每月334.19元起,u1则为286.2元起。公网带宽与系统盘亦有多档价位。实际价格与折扣请参照官网。
647 5
|
边缘计算 监控 算法
边缘计算的挑战和机遇
讨论了边缘计算面临的挑战和机遇,包括数据安全、网络稳定性、实时性能、异构性兼容性问题,并探索了其在不同应用场景中的潜力和商业模式创新。
654 0
|
C++
VS、ReSharper 设置修改代码颜色、提高代码辨识度!附VS超实用快捷!
ReSharper 配置代码颜色 本文提供全流程,中文翻译。 Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) ...
5167 0
|
安全 语音技术 虚拟化
Cisco 路由器产品体系
Cisco 路由器产品体系
373 0