父组件:

<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双向绑定的更多相关文章

  1. (复习)父子组件传值使用v-modal双向绑定,报错Avoid mutating a prop directly解决方案

    报错:Avoid mutating a prop directly since the value will be overwritten whenever the parent component. ...

  2. react第十一单元(受控组件和非受控组件-实现类似于vue双向绑定的功能)

    第十一单元(受控组件和非受控组件-实现类似于vue双向绑定的功能) #课程目标 理解因为react的单向数据流 理解表单组件会因为react数据流变的不好维护 理解受控组件与非受控组件的实质区别 理解 ...

  3. vue 实现父组件和子组件之间的数据双向绑定

    前言:vue 实现父组件给子组件传值,然后子组件可以修改回父组件的值.vue 的 prop 默认是单向数据绑定,但是偶尔需要双向绑定,这时就需要知道如何才能让子组件的数据修改时影响到父组件的数据.转载 ...

  4. vue model双向绑定

    view <div id='demo' class="container"> <input type="text" v-model='name ...

  5. angularjs1.x版本,父子组件之间的双向绑定

    今天遇到了一个angularjs的坑, ng-repeat和ng-if会改变他所包含的html中绑定变量的作用域. angularjs自定义指令,可以定义四种变量,通过 =,@,&双向绑定,单 ...

  6. Vue基础:子组件抽取与父子组件通信

    在工作中承担一部分前端工作,主要使用Vue + Element UI. 随着版本迭代,需求增加,页面往往变得更加臃肿,不易维护.学习子组件的封装和抽取,能更好适应需求. 为什么需要子组件 可复用 将重 ...

  7. 如何在Vue2中实现组件props双向绑定

    Vue学习笔记-3 前言 Vue 2.x相比较Vue 1.x而言,升级变化除了实现了Virtual-Dom以外,给使用者最大不适就是移除的组件的props的双向绑定功能. 以往在Vue1.x中利用pr ...

  8. Blazor和Vue对比学习(基础1.5):双向绑定

    这章我们来学习,现代前端框架中最精彩的一部分,双向绑定.除了掌握原生HTML标签的双向绑定使用,我们还要在一个自定义的组件上,手撸实现双向绑定.双向绑定,是前两章知识点的一个综合运用(父传子.子传父) ...

  9. vue 自定义组件 v-model双向绑定、 父子组件同步通信

    父子组件通信,都是单项的,很多时候需要双向通信.方法如下: 1.父组件使用:msg.sync="aa"  子组件使用$emit('update:msg', 'msg改变后的值xxx ...

  10. vue 自定义组件 v-model双向绑定、 父子组件同步通信【转】

    父子组件通信,都是单项的,很多时候需要双向通信.方法如下: 1.父组件使用:msg.sync="aa"  子组件使用$emit('update:msg', 'msg改变后的值xxx ...

随机推荐

  1. VulnStack - ATT&CK红队评估实战(四) Writeup

    VulnStack - ATT&CK红队评估实战(四) Writeup VulnStack(四)环境搭建 1.项目地址 http://vulnstack.qiyuanxuetang.net/v ...

  2. Elasticsearch之常用术语

    一. 数据库和ES简单类比 关系型数据库 表(Table) 行(Row) 列(Cloumn) Schema SQL Elasticsearch 索引(Index) 文档(Document) 字段(Fi ...

  3. utils工具类整理

    闲暇之余,整理出了项目中常用的一些工具类,不是很全,后续会持续更新--- 全部代码请移植github哦-github地址:https://github.com/yang302/utils

  4. 第3章 Git最最常用命令大全

    相信来查命令的同学,根本不是来学具体某个命令的作用的,只是想来查看命令的语法,博主深知这一点(因为博主也是这样过来的),相信这篇文章,将会带给你在工作中最常用的命令,让你一打开就是命令大全!! 喜欢这 ...

  5. 实现自动扫描工作区npm包并同步cnpm

    省流版: npx cnnc 为避免包名重复,取了2个单词的首尾,cnpm sync 前言 在开发一个多npm包的项目时,时常会一次更新多个包的代码,再批量发布到 npm 镜像源后. 由于国内网络环境的 ...

  6. (数据科学学习手札154)geopandas 0.14版本新特性一览

    本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 大家好我是费老师,就在前两天,Python生态中 ...

  7. TDengine 用户案例合集 | 智能环保项目的时序数据处理难点与优化实践

    智能环保系统通常涉及大量的传感器和监测设备,以收集环境数据并对其进行分析和处理,这些数据通常是时序数据,即在一段时间内按时间顺序生成的数据,规模庞大且要求快速准确地进行分析和处理.也因此时序数据处理是 ...

  8. 【保姆级安装使用教程#1】Xshell与Xftp的下载、安装和使用

    1. 下载 官网下载地址:==Xshell与Xftp下载地址== 当然也可以用鄙人的百度网盘连接下载这是链接:链接百度网盘下载Xshell与Xftp分别下载Xshell与Xftp 2. 安装Xshel ...

  9. GPT-4 API waitlist

    Skip to main content Site Navigation GPT-4 API waitlist We're making GPT-4 available as an API for d ...

  10. Chapter 6. Build Script Basics

    Chapter 6. Build Script Basics 6.1. Projects and tasks Everything in Gradle sits on top of two basic ...