vue2使用sync修饰符父子组件的值双向绑定

news2025/1/13 7:25:21

1、使用场景

    当我需要对一个 prop 进行“双向绑定的时候,通常用在封装弹窗组件的时候来进行使用,当然也会有其他的使用场景,只要涉及到父子组件之间需要传参的都可以使用,尽量不要使用watch监听来进行修改值,也不要尝试直接修改props传过来的参数,可以参考官网单向数据流的方式处理。

2、.sync使用方式

  • 以下是element封装的dialog弹窗组件,就是使用了.sync修饰符来进行控制是否弹出,我们要在项目中对dialog组件进行一个二次封装,也使用.sync的方式来实现。

在这里插入图片描述

  • 子组件代码部分
    1、props接收dialogVisible,并赋值给el-dialog组件;
    2、通过点击事件出发emit事件;
    3、通过为 this.$emit(‘update:dialogVisible’,false),update是固定的,后面的是你需要改变的值,要和你props传过来的值保持一致;
    4、修改后的值会更新到父组件;
// 子组件
<template>
  <div class="hello">
    <el-dialog title="提示" :visible.sync="dialogVisible" width="30%" :before-close="handleClose">
      <span>这是一段信息</span>
      <span slot="footer" class="dialog-footer">
        <el-button @click="handleClose">取 消</el-button>
        <el-button type="primary" @click="handleConfrim">确 定</el-button>
      </span>
    </el-dialog>
  </div>
</template>
<script>
export default {
  props: {
    dialogVisible: {
      type: Boolean,
      default: false
    },

  },
  methods: {
    handleClose(done) {
      this.$emit('update:dialogVisible',false)
    },
     handleConfrim() {

       this.$emit('update:dialogVisible',false)

    },
    change(e) {
      this.$emit('input', e.data)


    }
  }
};
</script>
  • 父组件代码部分
    1、初始化一个默认的值,我这里初始化的值为isShow;
    2、:dialogVisible.sync=“isShow” 向子组件传入dialogVisible,.sync修饰符一定要加上,这样子组的emit的update才会起作用;
    3、然后就可以动态修改父组件的值了;
// 父组件
<template>
  <div id="app">
    <!-- <img alt="Vue logo" src="./assets/logo.png"> -->
    <el-button type="primary" @click="isShow = true">{{ '展示弹窗' }}</el-button>
    <HelloWorld :dialogVisible.sync="isShow"/>
  </div>
</template>

<script>
import HelloWorld from './components/HelloWorld.vue'

export default {
  name: 'App',
  components: {
    HelloWorld
  },
  data() {
    return {
      isShow: false
    }
  }
}
</script>

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

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

相关文章

GCC编译器的使用

源文件需要经过编译才能生成可执行文件。GCC是一款强大的程序编译软件&#xff0c;能够在多个平台中使用。 1. GCC编译过程 主要分为四个过程&#xff1a;预处理、编译、汇编、链接。 1.1 预处理 主要处理源代码文件中以#开头的预编译指令。 处理规则有&#xff1a; &…

怎么使用midjourney?9个步骤教你学会AI创作

人工智能生成艺术作品的时代已经来临&#xff0c;互联网上到处都是试图创造完美提示的用户&#xff0c;以引导人工智能创造出正确的图像——有时甚至是错误的图像。听起来很有趣&#xff1f;Midjourney 是一种更常见的 AI 工具&#xff0c;人们用它只用几句话就能创造出梦幻般的…

【Linux系统编程】15.fcntl、lseek、truncate

目录 fcntl lseek 参数fd 参数offset 参数whence 返回值 应用场景 测试代码1 测试结果 测试代码2 测试结果 查看文件方式 truncate 参数path 参数length 测试代码3 测试结果 fcntl 获取文件属性、修改文件属性。 int flgsfcntl(fd,F_GETFL); //获取 flgs|…

微服务架构是什么?

一、微服务 1、什么是微服务&#xff1f; 微服务架构&#xff08;通常简称为微服务&#xff09;是指开发应用所用的一种架构形式。通过微服务&#xff0c;可将大型应用分解成多个独立的组件&#xff0c;其中每个组件都有各自的责任领域。在处理一个用户请求时&#xff0c;基于…

DOM事件流

DOM事件流 1. 常用事件绑定方式1.1 对象属性绑定1.2 addEventListener()绑定1.3 两种方式区别 2. 事件流2.1 概念2.2 事件顺序2.2.1 捕获阶段2.2.2 目标阶段2.2.3 冒泡阶段 3. 阻止事件冒泡3.1 event.stopPropagation()3.2 stopPropagation与stopImmediatePropagation区别 4. 事…

“科技助力财富增值 京华四季伴您一生”,北银理财深化线下线上客户交流互动

2023年4月12日&#xff0c;北银理财有限责任公司&#xff08;以下简称“北银理财”&#xff09;携手东方财富网启动北银理财财富号&#xff0c;首次采用线上直播及线下主题演讲相结合的方式&#xff0c;在上海举办以“科技助力财富增值&#xff0c;京华四季伴您一生”为主题的机…

6、springboot快速使用

文章目录 1、最佳实践1.1、引入场景依赖1.2、查看自动配置了哪些&#xff08;选做&#xff09;1.3、是否需要修改配置1、修改配置2、自定义加入或者替换组件3、自定义器 XXXXXCustomizer 2、开发小技巧2.1、Lombok1、引入坐标2、在IDEA中安装lombok插件&#xff08;新版默认安装…

趣说数据结构 —— 前言

趣说数据结构 —— 前言 一次偶然的机会&#xff0c;翻到当初自己读大学的时候教材&#xff0c;看着自己当初的勾勾画画&#xff0c;一时感触良多。 很值得一提的是&#xff0c;我在封面后第一页&#xff0c;写着自己的专业和名字的地方下面&#xff0c;写着几行这样的字&…

leetcode刷题(6)

各位朋友们大家好&#xff0c;今天是我的leetcode刷题系列的第六篇。这篇文章将与队列方面的知识相关&#xff0c;因为这些知识用C语言实现较为复杂&#xff0c;所以我们就只使用Java来实现。 文章目录 设计循环队列题目要求用例输入提示做题思路代码实现 用栈实现队列题目要求…

Vue2-黑马(七)

目录&#xff1a; &#xff08;1&#xff09;router-路由嵌套 &#xff08;2&#xff09;router-路由跳转 &#xff08;3&#xff09;router-导航菜单 &#xff08;1&#xff09;router-路由嵌套 我们有这样的需求&#xff0c;我们已经显示了主页&#xff0c;但是主页里面有&…

SpringBoot数据库换源

文章目录 前言一. baomidou提供换源注解 DS二. 手动数据源切换三. AOP自动换源 前言 笔者知道有三种方式: baomidou提供的DS自定义AOP自动换源实现AbstractRoutingDataSource手动换源 一. baomidou提供换源注解 DS 注意 1.不能使用事务&#xff0c;否则数据源不会切换&…

云原生入门

云原生入门. 云原生是一种设计和构建应用程序的方法&#xff0c;它充分利用了云计算的优势&#xff0c;如弹性、可扩展性、自动化和敏捷性。云原生应用程序不仅可以在云中运行&#xff0c;而且是为云而生的&#xff0c;它们采用了一些新式的技术和架构模式&#xff0c;使得应用…

零基础入门python好学么

python对于零基础的小伙伴算是非常友好的了~ python以简单易学著称~ Python简洁&#xff0c;高效的特点&#xff0c;大大提升了程序员的编码速度&#xff0c;极大的提高了程序员的办公效率&#xff0c;比如用其他编程语言5、6行代码才能整明白的&#xff0c;用Python可能1-2行就…

不应使用Excel进行项目资源规划的 7 个原因

项目资源规划早期仅限于基本分配和调度。因此&#xff0c;企业使用自制工具或excel表来执行这一简单功能。然而&#xff0c;随着技术和业务流程的发展&#xff0c;资源规划变得复杂&#xff0c;并包括其他组成部分&#xff0c;如预测和容量规划&#xff0c;优化等。 由于传统…

1.BootstrapTable组件

1.先在页面声明一个表格对象 <table id"table" class"table table-striped"></table> 2.生成表格JS代码如下 var url /log/;var columns [{checkbox: true,visible: true //是否显示复选框},{field: id,title: 序号,width…

若依框架—基于AmazonS3实现OSS对象存储服务

若依框架—基于AmazonS3实现OSS对象存储&#xff0c;其他也适用 文章目录 若依框架—基于AmazonS3实现OSS对象存储&#xff0c;其他也适用上一篇[若依mybatis升级mybatis-plus&#xff0c;其他也适用](https://blog.csdn.net/omnipotent_wang/article/details/128635654?spm10…

MYSQL:查询数据

一、学习目标 了解基本查询语句掌握表单查询的方法掌握如何使用几何函数的查询掌握连接查询的方法掌握如何使用子查询熟悉合并查询结果熟悉如何为表和字段取别名掌握如何使用正则表达式查询掌握数据表的查询操作技巧和方法 二、实验内容 根据不同条件对表进行查询操作&#…

Unity Game FrameWork—模块使用—对象池使用

使用对象池&#xff0c;需继承ObjectBase。首先创建一个OPGame的类&#xff0c;继承于ObjectBase&#xff0c;我们暂且把它叫做OP对象&#xff0c;如下图 OP对象有两个地方可以存储成员对象或变量&#xff0c;一个是在OP对象内部如模型ID&#xff1a;m_ModelID。另一个则是对…

【LeetCode训练营02】两个非空链表相加 详解

目录 题目 解题思路的分享 解题源码的分享 题目 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 你可以…

Executor框架简介

Executor系统中&#xff0c;将线程任务提交和任务执行进行了解耦的设计; 线程被一对一映射为服务所在操作系统线程&#xff0c;启动时会创建一个操作系统线程&#xff1b;当该线程终止时&#xff0c;这个操作系统线程也会被回收 Executor框架包含的核心接口和主要的实现类 具体…