11-Vue基础之组件通信(二)

个人名片:
😊作者简介:一名大二在校生
🤡 个人主页:坠入暮云间x
🐼
座右铭:懒惰受到的惩罚不仅仅是自己的失败,还有别人的成功。
🎅**学习目标: 坚持每一次的学习打卡

文章目录

    • 一、组件通信方式有哪些?
    • 二、什么是组件通信?
    • 三、组件关系分类
      • 1.父组件向子组件通信
      • 2.子组件向父组件通信
    • 四、什么是props?
      • 1.Props定义:
      • 2.Props作用:
      • 3.Props特点:
    • props校验
    • 什么是单向数据流?
      • 1.props 和 data共同点:
      • 2.区别:
      • 4.单向数据流

一、组件通信方式有哪些?

  1. 父向子传值的方式:props
  2. 子组件向父组件通信:自定义事件$emit
  3. 兄弟组件的通信:
  4. 状态提升
  5. EventBus
  6. 订阅与
  7. 发布模式
  8. 跨级组件之间的通信:provider和inject
  9. 无关系组件之间通信:状态机(vuex,pinia)

二、什么是组件通信?

组件通信:就是 组件与组件之间的数据传递
10. 组件的数据是独立的,无法直接访问其他组件的数据
11. 先使用其他组件的数据,就需要组件通信才可以进行数据传递

三、组件关系分类

  1. 父子关系
  2. 非父子关系

在这里插入图片描述

1.父组件向子组件通信

父组件通过Props将数据传递给子组件
子组件再利用$emit通知父组件修改更新数据
在这里插入图片描述
父组件App.vue

<template>
  <div class="app" style="border: 3px solid #000; margin: 10px">
    我是APP组件 
    <Son></Son>
  </div>
</template>

<script>
import Son from './components/Son.vue'
export default {
  name: 'App',
  data() {
    return {
      myTitle: '我是父组件props',
    }
  },
  components: {
    Son,
  },
}
</script>

<style>
</style>

子组件Son.vue

<template>
  <div class="son" style="border:3px solid #000;margin:10px">
    我是Son组件
  </div>
</template>

<script>
export default {
  name: 'Son-Child',
}
</script>

<style>

</style>

在这里插入图片描述

父组件向子组件传值步骤
1.给子组件以添加属性的方式传值
2.子组件内部通过Props接收
3. 模板中直接使用props接收值

2.子组件向父组件通信

子组件利用$emit通知父组件,进行修改更新数据
在这里插入图片描述
子组件向父组件传值步骤

  1. $emit触发事件,给父组件发送消息通知
  2. 父组件监听$emit触发的事件
  3. 提供处理函数,在函数的性参中获取传过来的参数

四、什么是props?

1.Props定义:

组件上注册的一些自定义属性

2.Props作用:

向子组件传递数据

3.Props特点:

  1. 可以传递任意数量的props
  2. 可以传递任意类型的props

props校验

作用:为组件的props指定验证要求,不符合要求的,控制台会有错误提示帮助开发,快速找到错误
语法:

props: {
  校验的属性名: {
    type: 类型,  // Number String Boolean ...
    required: true, // 是否必填
    default: 默认值, // 默认值
    validator (value) {
      // 自定义校验逻辑
      return 是否通过校验
    }
  }
},

注意:
1.defaultrequired一般不同时写(因为当时必填项时,肯定是有值的)
2.default后面如果是简单类型的值,可以直接写默认。如果是复杂类型的值,则需要以函数的形式return一个默认值

什么是单向数据流?

1.props 和 data共同点:

都可以给组件提供数据

2.区别:

data的数据是自己的=》可以随便更改
props数据是外部的=>不能直接改,要遵循单向数据流

4.单向数据流

父级props的数据更新,回向下流动,影响子组件。这个数据流动是单向的
代码如下:
App.vue

<template>
  <div class="app">
    <BaseCount></BaseCount>
  </div>
</template>

<script>
import BaseCount from './components/BaseCount.vue'
export default {
  components:{
    BaseCount
  },
  data(){
  },
}
</script>

<style>

</style>

BaseCount.vue

<template>
  <div class="base-count">
    <button @click="count--">-</button>
    <span>{{ count }}</span>
    <button @click="count++">+</button>
  </div>
</template>

<script>
export default {
  // 1.自己的数据随便修改  (谁的数据 谁负责)
   data () {
     return {
       count: 100,
     }
   },
  // 2.外部传过来的数据 不能随便修改
  //props: {
  //  count: {
  //    type: Number,
  //  }, 
  //}
}
</script>

<style>
.base-count {
  margin: 20px;
}
</style>

在这里插入图片描述

今天的学习笔记就分享完毕啦 !有什么不对的地方欢迎大家在评论区中指正

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

git push 报错 The requested URL returned error: 500

今天gitpush时报错The requested URL returned error: 500 看报错应该是本地和gitlab服务器之间通信的问题&#xff0c;登录gitlab网站查看 登录时报错无法通过ldapadmin认证&#xff0c;ldap服务器连接失败。 首先&#xff0c;登录ldap服务器&#xff0c;查看是否是ldap服务…

浅聊汽车供应链数智化发展趋势

“2023中国汽车供应链大会暨第二届中国新能源智能网联汽车生态大会”在11月10日—12日&#xff0c;武汉经开区举办。围绕供应链安全与布局、新型汽车供应链打造、传统供应链升级、全球化发展等热点话题进行深入交流与探讨&#xff0c;寻找构建世界一流汽车供应链的对策、方法和…

macos死机后IDEA打不开,Cannot connect to already running IDE instance.

Cannot connect to already running IDE instance. Exception: Process 573 is still running 解决办法 进入&#xff1a;/Users/lzq/Library/Application Support/JetBrains 找到IDEA的目录删除隐藏文件夹 .lock rm -rf .lock

【Docker】五分钟完成Docker部署Java应用,你也可以的!!!

文章目录 前言一、部署步骤1.项目结构2.Dockerfile3.docker-compose.yml4.启动5.常用命令 总结 前言 本文基于Docker Compose部署Java应用&#xff0c;请确保你已经安装了Docker和Docker Compose。 十分钟就能上手docker&#xff1f;要不你也试试&#xff1f; 一、部署步骤 1…

陪诊小程序|陪诊系统打开陪护行业新世界

随着社会老龄化加剧&#xff0c;以及人们对于医疗服务质量的要求提高&#xff0c;陪诊服务逐渐成为了医疗体系中不可或缺的一部分。而陪诊小程序作为陪诊服务的线上平台&#xff0c;更是受到了广泛的关注。下面小编就给大家讲解下陪诊小程序的功能并阐述其系统优势。 陪诊小程序…

【遗传算法】Genetic algorithms (GAs) 遗传算法原理入门与应用代码

目录 1 遗传算法 2 遗传算法的基本步骤 3 Python示例 4 遗传算法解决TSP&#xff08;旅行商问题&#xff09; 1 遗传算法 遗传算法是一种优化搜索算法&#xff0c;模拟自然选择和遗传机制来寻找问题的最优解。这种算法的设计灵感来自于达尔文的进化论和遗…

四川芸鹰蓬飞商务信息咨询有限公司是可靠的选择

随着电商行业的快速发展&#xff0c;越来越多的消费者选择通过线上平台购物。在这个大背景下&#xff0c;四川芸鹰蓬飞商务信息咨询有限公司以其独特的抖音电商服务&#xff0c;为广大消费者带来了更加便捷、安全的购物体验。 一、服务的优势 专业团队&#xff1a;公司拥有一支…

蓝桥杯算法双周赛心得——深秋的苹果(二分+贪心分组前缀和)

大家好&#xff0c;我是晴天学长&#xff0c;二分的check函数&#xff0c;需要的小伙伴可以关注支持一下哦&#xff01;后续会继续更新的。&#x1f4aa;&#x1f4aa;&#x1f4aa; 1) .深秋的苹果 问题描述 当深秋的苹果树丰收时&#xff0c;村庄的居民们兴致勃勃地采摘着红彤…

QGIS之二十一栅格数据重投影坐标系

效果 步骤 1、准备数据 2、栅格重投影 Qgis工具箱中搜索“投影” 指定重投影坐标系&#xff0c;例如EPSG&#xff1a;3857 运行 3、结果 查看属性

栈:括号匹配问题!

目录 题目&#xff1a; 思路分析&#xff1a; 解题思路&#xff1a; 一、配对&#xff1a; 二、数量问题&#xff1a; 三、细节问题&#xff1a; 完整代码&#xff1a; 手撕栈&#xff1a; 题目&#xff1a; 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&…

【python】Django——连接mysql数据库

笔记为自我总结整理的学习笔记&#xff0c;若有错误欢迎指出哟~ 【Django专栏】 Django——django简介、django安装、创建项目、快速上手 Django——templates模板、静态文件、django模板语法、请求和响应 Django——连接mysql数据库 Django——连接mysql数据库 连接MySQL数据库…

Git本地项目提交到Gitee的操作流程

一、Gitee创建一个仓库 第一步&#xff1a; 第二步&#xff1a; 第三步&#xff1a; 第四步&#xff1a;复制该仓库地址&#xff08;https://gitee.com/yassels/test_1115.git&#xff09;&#xff0c;留待后续使用 二、操作本地文件上传到Gitee 第一步&#xff1a; 第二步…

Dreamweaver替代方案!免费开源网页开发工具推荐,超实用不容错过!

虽然Adobedreamweaver非常好用&#xff0c;但它并不是唯一一个可以设计、开发和发布精彩网站的Web开发集成环境。在我们的开源世界里&#xff0c;有许多优秀的Web开发工具&#xff0c;可以完全取代dreamweaver的各种功能&#xff0c;更重要的是&#xff0c;它们是免费的。如果您…

找不同游戏-第15届蓝桥第二次STEMA测评Scratch真题精选

[导读]&#xff1a;超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成&#xff0c;后续会不定期解读蓝桥杯真题&#xff0c;这是Scratch蓝桥杯真题解析第157讲。 第15届蓝桥杯第2次STEMA测评已于2023年10月29日落下帷幕&#xff0c;编程题一共有6题&#xff0c;分别如下&…

JavaWeb-HTML

​ 一、什么是HTML HTML是hypertext markup language&#xff08;超文本标记语言&#xff09;的缩写。HTML文件本质上是文本文件&#xff0c;普通的文本文件只能显示字符&#xff0c;而HTML文件可以在浏览器上显示更丰富的信息&#xff08;如图片等&#xff09;。 超文本&am…

Go语言fyne开发桌面应用程序-环境安装

环境安装 参考https://developer.fyne.io/started/#prerequisites网站 之前的文章介绍了如何安装GO语言这里不在叙述 msys2 首先安装msys2&#xff0c;https://www.msys2.org/ 开始菜单打开MSYS2 执行 $ pacman -Syu$ pacman -S git mingw-w64-x86_64-toolchain注意&#…

企业大文件传输的四大误区:你还在用传统的FTP和网盘吗?

在当前数字化时代&#xff0c;数据已经成为企业的核心资产&#xff0c;而文件传输则是数据流动的重要方式。企业需要高效、安全、稳定地传输各种类型和规模的文件&#xff0c;无论是内部协作还是外部交付。然而&#xff0c;很多企业在文件传输方面存在一些误区&#xff0c;导致…

Python交易-通过Financial Modeling Prep (FMP)选择行业

介绍 在您的交易旅程中,无论您是在寻找理想的股票、板块还是指标,做出明智的决策对于您的成功至关重要。然而,收集和分析所需的大量数据可能相当艰巨。财务建模准备 (FMP) API的

jenkins+centos7上传发布net6+gitlab

工作中实践了一下jenkins的操作&#xff0c;所以记录一下这次经验 首先安装好jenkins并注册自己的jenkins账号 因为我们的项目代码管理使用的是gitlab&#xff0c;在开始之前先在jenkins上安装gitlab的插件&#xff0c;安装之后应该是要重启jenkins的服务&#xff0c;后续jen…

无线终端掉线问题专题

一、终端连接过程 1、通过beacon或者probe帧发现设备 2、accoc和auth过程 3、EAP过程 4、DHCP过程 5、portal过程 6、终端检测wlan是否可以上网 7、正常接入网络 二、终端无法上网 终端无法上网则说明终端在连接过程中某一个环节除了问题 1、发现AP过程&#xff0c;p…