vue3在父子组件使用v-model双向绑定
父组件:
<script setup>
import InputBox from "@/compon/InputBox.vue";
import {ref} from "vue";
const count = ref(100)
</script>
<template>
<div>
我是父组件, {{ count }}
<InputBox v-model="count"></InputBox>
<!-- 在vue3的子父组件中使用v-model相当于下面这行代码 -->
<!--<InputBox :modelValue="count" @update:modelValue="count=$event"></InputBox>-->
<!-- vue2就相当于这行代码:-->
<!-- <InputBox :value="count" @input="count=$event"></InputBox> -->
<!-- vue2就有时候你并不想传递给子组件的props叫value,此时会用.sync修饰符:-->
<!-- <InputBox :myvalue.sync="count"></InputBox> -->
<!-- .sync就相当于下面这行代码,等同于简化了代码的编写。 -->
<!-- <InputBox :myvalue="count" @update:myvalue="count=$event"></InputBox> -->
<!-- 然后对比一看。。。其实vue3中的v-model就是和.sync是一个球样... -->
</div>
</template>
封装一个InputBox子组件,用于数据的加减
<script setup>
// 1. 和vue2一样,先通过props接收数据
const props = defineProps(['modelValue']);
// 2. 和vue2一样,也是要使用emit来触发父组件的事件
const emits = defineEmits(['update:modelValue']);
const ChangeNum = (num) => {
emits('update:modelValue', props.modelValue+num)
}
</script>
<template>
<div class="son">
<button @click="ChangeNum(1)">-</button>
<input style="width: 50px;" type="text" :value="modelValue">
<button @click="ChangeNum(-1)">+</button>
</div>
</template>
<style scoped>
.son {
border: 1px solid red;
padding: 30px;
width: 300px;
}
</style>
思考:
觉得每次在子组件中定义emit和props很麻烦?vue3.3添加了一个实验性特新defineModel,详细见下一篇笔记。
vue3在父子组件使用v-model双向绑定的更多相关文章
- (复习)父子组件传值使用v-modal双向绑定,报错Avoid mutating a prop directly解决方案
报错:Avoid mutating a prop directly since the value will be overwritten whenever the parent component. ...
- react第十一单元(受控组件和非受控组件-实现类似于vue双向绑定的功能)
第十一单元(受控组件和非受控组件-实现类似于vue双向绑定的功能) #课程目标 理解因为react的单向数据流 理解表单组件会因为react数据流变的不好维护 理解受控组件与非受控组件的实质区别 理解 ...
- vue 实现父组件和子组件之间的数据双向绑定
前言:vue 实现父组件给子组件传值,然后子组件可以修改回父组件的值.vue 的 prop 默认是单向数据绑定,但是偶尔需要双向绑定,这时就需要知道如何才能让子组件的数据修改时影响到父组件的数据.转载 ...
- vue model双向绑定
view <div id='demo' class="container"> <input type="text" v-model='name ...
- angularjs1.x版本,父子组件之间的双向绑定
今天遇到了一个angularjs的坑, ng-repeat和ng-if会改变他所包含的html中绑定变量的作用域. angularjs自定义指令,可以定义四种变量,通过 =,@,&双向绑定,单 ...
- Vue基础:子组件抽取与父子组件通信
在工作中承担一部分前端工作,主要使用Vue + Element UI. 随着版本迭代,需求增加,页面往往变得更加臃肿,不易维护.学习子组件的封装和抽取,能更好适应需求. 为什么需要子组件 可复用 将重 ...
- 如何在Vue2中实现组件props双向绑定
Vue学习笔记-3 前言 Vue 2.x相比较Vue 1.x而言,升级变化除了实现了Virtual-Dom以外,给使用者最大不适就是移除的组件的props的双向绑定功能. 以往在Vue1.x中利用pr ...
- Blazor和Vue对比学习(基础1.5):双向绑定
这章我们来学习,现代前端框架中最精彩的一部分,双向绑定.除了掌握原生HTML标签的双向绑定使用,我们还要在一个自定义的组件上,手撸实现双向绑定.双向绑定,是前两章知识点的一个综合运用(父传子.子传父) ...
- vue 自定义组件 v-model双向绑定、 父子组件同步通信
父子组件通信,都是单项的,很多时候需要双向通信.方法如下: 1.父组件使用:msg.sync="aa" 子组件使用$emit('update:msg', 'msg改变后的值xxx ...
- vue 自定义组件 v-model双向绑定、 父子组件同步通信【转】
父子组件通信,都是单项的,很多时候需要双向通信.方法如下: 1.父组件使用:msg.sync="aa" 子组件使用$emit('update:msg', 'msg改变后的值xxx ...
随机推荐
- WPF学习:Slider — 冒泡显示值
想做一个下图所示的Slider,以冒泡的方式显示其Value值,该怎么做呢? 功能要求,当鼠标放在滑块上的时候,冒"泡"显示值:当滑块移动的时候,"泡"跟随移动 ...
- Markdown初识
1.标题 一级标题 ctrl+1......六级标题 ctrl+6 2.字体 加粗 ctrl+B 斜体 ctrl+I 下划线 ctrl+ U 3.引用 大于号加任意键 4.分割线 "---& ...
- 【接口自动化测试】Eolink Apilkit 安装部署,支持 Windows、Mac、Linux 等系统
Eolink Apikit 有三种客户端,可以依据自己的情况选择.三种客户端的数据是共用的,因此可以随时切换不同的客户端. 我们推荐使用新推出的 Apikit PC 客户端,PC 端拥有线上产品所有的 ...
- 逻辑漏洞挖掘之XSS漏洞原理分析及实战演练
一.前言 2月份的1.2亿条用户地址信息泄露再次给各大公司敲响了警钟,数据安全的重要性愈加凸显,这也更加坚定了我们推行安全测试常态化的决心.随着测试组安全测试常态化的推进,有更多的同事对逻辑漏洞产生了 ...
- 「codeforces - 185D」Visit of the Great
link. 简单提一下做法,注意到 \(k^{2^a}\equiv k^{2^b}\equiv-1\equiv (-1)^{2^{b-a}}=1\pmod{(k^{2^a}+1,k^{2^{b}}+1 ...
- 11G手动建库
◆◆◆11G手动建库◆设置环境变量export ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=/u01/app/oracle/product/11.2.4 ...
- K8s - 安装部署Kafka、Zookeeper集群教程(支持从K8s外部访问)
本文演示如何在K8s集群下部署Kafka集群,并且搭建后除了可以K8s内部访问Kafka服务,也支持从K8s集群外部访问Kafka服务.服务的集群部署通常有两种方式:一种是 StatefulSet,另 ...
- JavaScript:数据类型详解
ECMAScript中数据类型目前有两种:基本数据类型和引用数据类型. 基本数据类型 基本数据类型也称作简单数据类型,为Undefined,Null,Boolean,Number,String,Sym ...
- SSL证书链及使用
什么是证书链 证书链简单来说是域名钥证书.CA公钥.根证书形成的一个颁发链条,属于公钥的一部分. 更白话一点,就是证书链文件包含一系列CA机构公钥的证书. 证书链格式 一般证书链格式是.chain,证 ...
- DS必背合集
Data Structure必背合集 一.链表.栈和队列 1.简述说明数据的存储结构: 答: (1)顺序存储:逻辑上相邻的两个元素的物理位置也相邻. 优点:能够随机存取. 缺点:插入删除需要移动大量的 ...