【vue2第十一章】v-model的原理详解 与 如何使用v-model对父子组件的value绑定 和修饰符.sync

v-model的原理详解

v-model的本质就是一个语法糖,实际上就是 :value="msg"@input="msg = $event.target.value" 的简写。
:value="msg" 从数据单向绑定到input框,当data数据中的msg内容一旦改变,而input框数据也随之改变。
@input="msg = $event.target.value" 是为input框绑定了input事件,内容改变则触发,而在触发时又把这个input框的value值赋值给了data数据中的msg。
在这里插入图片描述

原本使用porps和$emit实现的父子组件通信。

这下面的代码就实现了父子组件属性的双向绑定。
在这里插入图片描述
而这其中父组件中的子标签属性 :value="msg" @input="sendMsg" 是与 使用 v-model:"msg" 等价的,因为sendMsg(value){ console.log(value) this.msg = value }方法的内容是与v-model原理中的@input="msg = $event.target.value"是一模一样的意思,所以在父组件中我们可以使用以下代码来与子组件双向绑定

<!-- 结构 -->
<template><div id="app"><MyInput v-model="msg"></MyInput></div>
</template><!-- 行为 -->
<script>
import MyInput from './components/MyInput.vue';export default {name: "App",data() {return {msg: "你好!vue",};},components:{MyInput},
};
</script><!-- 样式 -->
<style>
#app {width: 100%;height: 600px;background-color: skyblue;overflow: hidden;
}
</style>

而子组件则需要注意的是,使用 props:{ value:String }, 来接受父组件数据,必须是vaule:

<template><input  type="text" :value="value" @input="fun($event.target.value)">
</template><script>
export default {props:{value:String},methods:{fun(e){this.$emit('input',e)}}
}
</script>

.sync修饰符

使用v-model有一个坏处就是,子组件接收数据的键只可以使用value props:{ value:String },而这个修饰符.sync就可以解决这个问题。
在这里插入图片描述

子组件中将修改触发方法。

<template><input  type="text" :value="msg" @input="fun($event.target.value)">
</template><script>
export default {props:{msg:String},methods:{fun(e){//修改点update:要修改的属性名称this.$emit('update:msg',e)}}
}
</script>

父组件中的修改点:

<!-- 结构 -->
<template><div id="app"><!-- 只需修改为  :传递数据名.sync="传递数据名" --><MyInput :msg.sync = "msg"></MyInput></div>
</template><!-- 行为 -->
<script>
import MyInput from './components/MyInput.vue';export default {name: "App",data() {return {msg: "你好!vue",};},components:{MyInput},
};
</script><!-- 样式 -->
<style>
#app {width: 100%;height: 600px;background-color: skyblue;overflow: hidden;
}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/66938.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenCV(十八):图像直方图

目录 1.直方图统计 2.直方图均衡化 3.直方图匹配 1.直方图统计 直方图统计是一种用于分析图像或数据的统计方法&#xff0c;它通过统计每个数值或像素值的频率分布来了解数据的分布情况。 在OpenCV中&#xff0c;可以使用函数cv::calcHist()来计算图像的直方图。 calcHist(…

uni-app之android离线打包

一 AndroidStudio创建项目 1.1&#xff0c;上一节演示了uni-app云打包&#xff0c;下面演示怎样androidStudio离线打包。在AndroidStudio里面新建空项目 1.2&#xff0c;下载uni-app离线SDK&#xff0c;离线SDK主要用于App本地离线打包及扩展原生能力&#xff0c;SDK下载链接h…

电商平台api对接货源

如今&#xff0c;电商平台已经成为了人们购物的主要途径之一。 然而&#xff0c;对于电商平台来说&#xff0c;货源对接一直是一个比较棘手的问题。为了解决这个问题&#xff0c;越来越多的电商平台开始使用API来对接货源。 API&#xff0c;即应用程序接口&#xff0c;是一种允…

分支创建查看切换

1、初始化git目录&#xff0c;创建文件并将其推送到本地库 git init echo "123" > hello.txt git add hello.txt git commit -m "first commit" hello.txt$ git init Initialized empty Git repository in D:/Git/git-demo/.git/ AdministratorDESKT…

django中配置使用websocket终极解决方案

django ASGI/Channels 启动和 ASGI/daphne的区别 Django ASGI/Channels 是 Django 框架的一个扩展&#xff0c;它提供了异步服务器网关接口&#xff08;ASGI&#xff09;协议的支持&#xff0c;以便处理实时应用程序的并发连接。ASGI 是一个用于构建异步 Web 服务器和应用程序…

ipad手写笔什么牌子好?适合开学买的电容笔推荐

随着社会和经济水平的不断提高&#xff0c;对电容笔的使用日益增加。国产平替的电容笔和原装苹果的电容笔没有太大的区别&#xff0c;不管是功能还是手感都很像&#xff0c;书写上的笔锋也很流畅&#xff0c;这让我很惊讶&#xff0c;因为其的价格很便宜&#xff0c;但其的体验…

【实训项目】精点考研

1.设计摘要 如果说高考是一次能够改变命运的考试&#xff0c;那么考研应该是另外一次。为什么那么多人都要考研呢&#xff1f;从中国教育在线官方公布是考研动机调查来看&#xff0c;大家扎堆考研的原因大概集中在这6个方面&#xff1a;本科就业压力大&#xff0c;提升竞争力、…

开源照片管理服务LibrePhotos

本文是为了解决网友 赵云遇到的问题&#xff0c;顺便折腾的。虽然软件跑起来了&#xff0c;但是他遇到的问题&#xff0c;超出了老苏的认知。当然最终问题还是得到了解决&#xff0c;不过与 LibrePhotos 无关&#xff1b; 什么是 LibrePhotos ? LibrePhotos 是一个自托管的开源…

学习高级数据结构:探索平衡树与图的高级算法

文章目录 1. 平衡树&#xff1a;维护数据的平衡与高效性1.1 AVL 树&#xff1a;严格的平衡1.2 红黑树&#xff1a;近似平衡 2. 图的高级算法&#xff1a;建模复杂关系与优化2.1 最小生成树&#xff1a;寻找最优连接方式2.2 拓扑排序&#xff1a;解决依赖关系 拓展思考 &#x1…

支付参考文档

支付宝官方提供的样例代码与支付宝通信&#xff1a; 小程序文档 - 支付宝文档中心支付宝文档中心https://docs.open.alipay.com/api_1/alipay.trade.query 参考sdk示例&#xff1a; 小程序文档 - 支付宝文档中心支付宝文档中心https://docs.open.alipay.com/api_1/alipay.tra…

unity界面上Global 与Local xyz- right up forward

gloabal 如果要沿这个方向移动就比较困难 local下就不一样了

docker高级(DockerFile解析)

1、构建三步骤 编写Dockerfile文件 docker build命令构建镜像 docker run依镜像运行容器实例 2、DockerFile构建过程解析 Dockerfile内容基础知识 1&#xff1a;每条保留字指令都必须为大写字母且后面要跟随至少一个参数 2&#xff1a;指令按照从上到下&#xff0c;顺序执行…

【2023集创赛】加速科技杯二等奖作品:基于ATE的电源芯片测试设计与性能分析

本文为2023年第七届全国大学生集成电路创新创业大赛&#xff08;“集创赛”&#xff09;加速科技杯二等奖作品分享&#xff0c;参加极术社区的【有奖征集】分享你的2023集创赛作品&#xff0c;秀出作品风采&#xff0c;分享2023集创赛作品扩大影响力&#xff0c;更有丰富电子礼…

c++11 标准模板(STL)(std::basic_stringstream)(四)

定义于头文件 <sstream> template< class CharT, class Traits std::char_traits<CharT> > class basic_stringstream;(C11 前)template< class CharT, class Traits std::char_traits<CharT>, class Allocator std::alloc…

C++算法 —— 动态规划(1)斐波那契数列模型

文章目录 1、动规思路简介2、第N个泰波那契数列3、三步问题4、使用最小花费爬楼梯5、解码方法6、动规分析总结 1、动规思路简介 动规的思路有五个步骤&#xff0c;且最好画图来理解细节&#xff0c;不要怕麻烦。当你开始画图&#xff0c;仔细阅读题时&#xff0c;学习中的沉浸…

大数据可视化大屏实战项目(10)无线网络大数据平台—HTML+CSS+JS【源码在文末】(可用于比赛项目或者作业参考中)

大数据可视化大屏实战项目&#xff08;10&#xff09;无线网络大数据平台—HTMLCSSJS【源码在文末】&#xff08;可用于比赛项目或者作业参考中&#x1f415;&#x1f415;&#x1f415;&#xff09; 一&#xff0c;项目概览 ☞☞☞☞☞☞项目演示链接&#xff1a;http://59.…

Langchain使用介绍之outparser 和memory

上一篇博客中对Langchain中prompt进行了详细的介绍&#xff0c;此篇博客将介绍Langchain中的outparser和memory。当调用大模型生成内容时&#xff0c;返回的内容默认是string类型&#xff0c;这对于我们获取response中的某些内容信息可能会带来障碍&#xff0c;例如返回的内容本…

MyBatis中至关重要的关系映射----全方面介绍

目录 一 对于映射的概念 1.1 三种关系映射 1.2 resultType与resultMap的区别 resultType&#xff1a; resultMap&#xff1a; 二&#xff0c;一对一关联查询 2.1 嵌套结果集编写 2.2 案例演示 三&#xff0c;一对多关联查询 3.1 嵌套结果集编写 3.3 案例演示 四&…

统计教程|PASS实现两计量指标的的Pearson相关分析时的样本量估计

在临床研究中我们经常会研究两个观察指标间是否有联系&#xff0c;如人的身高与体重、体温与脉搏次数、药物剂量与反应等&#xff0c;相关分析就是研究观察指标间相关关系的统计方法&#xff0c;由于不同资料类型其分析方法有所差异&#xff0c;故本节主要讲解的是定量资料的线…

综合实训-------成绩管理系统 V1.1

综合实训-------成绩管理系统 V1.1 1、一维数组数据double 2、我们用元素的位置来当学号。 1、录入数据 【5个数据】或【通过文件的方式取数据】 2、显示数据 3、添加一条记录 4、修改一条记录 5、删除一条记录 6、查找一条记录。【输入学号&#xff0c;显示成绩】 7、统计。【…