vue-组件组成和组件通信(四)

  • 组件的三大组成部分 (结构/样式/逻辑)

  • scoped样式冲突

默认情况:写在组件中的样式会 全局生效 → 因此很容易造成多个组件之间的样式冲突问题。

1. 全局样式: 默认组件中的样式会作用到全局

2. 局部样式: 可以给组件加上 scoped 属性, 可以让样式只作用于当前组件

scoped原理?

1. 当前组件内标签都被添加 data-v-hash值 的属性

2. css选择器都被添加 [data-v-hash值] 的属性选择器

最终效果: 必须是当前组件的元素, 才会有这个自定义属性, 才会被这个样式作用到

  • data是一个函数

一个组件的 data 选项必须是一个函数。→ 保证每个组件实例,维护独立的一份数据对象。 每次创建新的组件实例,都会新执行一次 data 函数,得到一个新对象。

小结: 

1. 结构:有且只能一个根元素

2. 样式:默认全局样式,加上 scoped 局部样式

3. 逻辑:data是一个函数,保证数据独立。

 

  • 组件通信

  • 什么是组件通信

组件通信, 就是指 组件与组件 之间的数据传递

  • 组件的数据是独立的,无法直接访问其他组件的数据。
  • 想用其他组件的数据 → 组件通信

不同的组件关系 和 组件通信方案分类

组件关系分类:

1. 父子关系

2. 非父子关系

组件通信解决方案:

 

  • 父传子(props)

父子通信流程图:

1. 父组件通过 props 将数据传递给子组件

2. 子组件利用 $emit 通知父组件修改更新

 

  • 子传父($emit)

prop 

什么是prop

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

props 校验

思考:组件的 prop 可以乱传么?

作用:为组件的 prop 指定验证要求,不符合要求,控制台就会有错误提示 → 帮助开发者,快速发现错误

prop & data、单向数据流 

共同点:都可以给组件提供数据。

区别:

  • data 的数据是自己的 → 随便改
  • prop 的数据是外部的 → 不能直接改,要遵循 单向数据流

  • 非父子 (扩展)

非无序列表父子通信 (拓展) - event bus 事件总线

非父子通信 (拓展) - provide & inject 

provide & inject 作用:跨层级共享数据。

案例:小黑记事本 - 组件版 

 

 

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

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

相关文章

Linux系统调试课:Linux错误码介绍

文章目录 一、错误码二、错误码返回案例三、使用 goto 语句沉淀、分享、成长,让自己和他人都能有所收获!😄 📢错误代码由内核或用户空间应用程序(通过errno变量)解释。错误处理在软件开发中非常重要,而不仅仅是在内核开发中。幸运的是,内核提供的几种错误,几乎涵盖了可…

Verilog刷题笔记30

题目: You are provided with a BCD one-digit adder named bcd_fadd that adds two BCD digits and carry-in, and produces a sum and carry-out. 解题: module top_module( input [399:0] a, b,input cin,output cout,output [399:0] sum );reg [99…

opencv 图像色彩空间转化

今天看了b站贾志刚的课,觉得不错,特地做学习笔记来和小伙伴分享 贾志刚的这个好像是2.0版本,30小时的,语言更加精炼,适合初级入门学习 第一节是常规安装 看他的步骤装就行了,记得配置完点应用再点确定,我第一次就是 没点然后就失败了,又得重配置一次…

Elasticsearch 通信模块的分析

Elasticsearch 通信模块的分析 - 知乎 Elasticsearch是一个基于Lucene的分布式实时搜索框架,它本身能够接受用户发来的http 请求, 集群节点之间也会有相关的通信。 通信模块的简介 Elasticsearch 中的通信相关的配置都是由NetworkModule 这个类完成的…

文心一言“拜师”了!金灿荣、王先进等成为首批“文心导师”

12月28日,由深度学习技术及应用国家工程研究中心主办的WAVE SUMMIT深度学习开发者大会2023在北京召开。百度首席技术官、深度学习技术及应用国家工程研究中心主任王海峰现场公布了飞桨文心五载十届最新生态成果,文心一言最新用户规模破1亿,截…

TCP和UDP相关问题(重点)——7.TCP的流量控制怎么实现的?

流量控制就是在双方通信时,发送方的速率和接收方的速率不一定是相等的,如果发送方发送的太快,接收方就只能把数据先放到接收缓冲区中,如果缓冲区都满了,那么处理不过来就只能丢弃,所以需要控制发送方的速率…

34 使用 LNMP 架构部署动态网站环境

源码包程序 LNMP 动态网站部署架构 LNMP 动态网站部署架构是一套由 Linux Nginx MySQL PHP 组成的动态网站系统 解决方案。 1. 准备工作 在使用源码包安装服务程序之前,首先要让安装主机具备编译程序源码的环境。这需要 具备 C 语言、C语言、Perl 语言的编译器&…

java之filter过滤器

1、概念 2、过程 3. 实现 4. 参考链接 参考的b站链接

那些也许你不知道的操作符!

前言 操作符有很多种,目前我们已经了解了一部分 例如最简单的、-、*、/、,还有我们学到的&&,||,!等,但是操作符可不是就只有这么些的,让我们一起来看看吧 目录 1. 移位操作符 原码、反码、补码…

Python-matplotlib绘制双(多)y轴图像

一:灵感问题(难点) 在利用python中的matplotlib绘制双y轴图像(条形图折线图)过程中,为了防止折线图被条形图遮挡,我们需要先绘制条形图,而后绘制折线图,大致效果图如下&a…

首次安装Mysql数据库

1、在mysql官网下载自己需要的版本 2、选择安装类型 3、 检查一下需求版本 4、 这里可能会弹出如下信息,先不用管这一步,点击Yes继续即可 5、 安装需要的环境,点击执行就可以,此过程会比较慢 如下就是全面安装完成了,点…

《Linux 简易速速上手小册》第8章: 安全性与加固(2024 最新版)

文章目录 8.1 防火墙与安全策略8.1.1 重点基础知识8.1.2 重点案例:配置 iptables 以保护 Web 服务器8.1.3 拓展案例 1:使用 firewalld 配置动态防御区域8.1.4 拓展案例 2:配置 ufw 以简化管理 8.2 SSH 安全最佳实践8.2.1 重点基础知识8.2.2 重…