vue学习day07-scoped样式冲突、data是一个函数、props详解、组件通信、非父子通信-event bus 事件总线

19、scoped样式冲突

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

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

比如:

当只有box1设置边框时,却出现都有边框的情况

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

给box1加上scoped后

结果:

(2)scoped原理:

1)当前组件内标签都添加data-v-hash值的属性
2)css选择器都被添加[data-v-hash值]的属性选择器
3)最终效果:必须是当前组件的元素,才会有这个自定义属性,才会被这个样式作用到
4)示例:

20、data是一个函数

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

比如:

当一个组件在根组件里多次使用时,该组件中的某一项数据值被使用多次,修改该值其中一个值,而不影响该值在其他地方的数值

21、组件通信

组件的数据是独立的,无法访问其他组件的数据,如果想用其他组件的数据,需要使用组件通信

(1)概念

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

(2)组件之间的关系

父子关系和非父子关系

(3)组件通信解决方案

1)父子关系(props和$emit)
①父传子

在父组件里:

在子组件中:

效果:

②子传父

子组件利用$emit通知父组件,进行修改更新

比如:

修改父传子的值

效果:

点击修改标题后

2)非父子(看23、24)

Provide和inject或eventbus

通用解决方案:Vuex(适合复杂业务场景)

22、props详解

(1)prop概念

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

(2)prop作用

向子组件传递数据

(3)特点:

1)可以传递任意数量的prop
2)可以传递任意类型的prop

(4)props校验

1)作用

为组件的prop指定验证要求,不符合要求,控制台会有错误提示;版主开发者快速发现错误

2)语法

简单写法

完整写法:

①类型校验
②非空校验
③默认值
④自定义校验

(5)prop与data、单项数据流

1)prop与data(谁的数据谁负责)
共同点:

①都可以给组件提供数据

区别:

①data的数据是自己的,可以随便改

②prop的数据是外部的,不能直接修改,要遵循单项数据流

2)单项数据流

父级prop的数据更新,会向下流动,影响子组件。这个流动是单向的。

23、非父子通信-event bus 事件总线

(1)作用:非父子组件之间,进行消息传递。(复杂场景,用vuex)

(2)步骤:

1)创建一个事件总线,导出Bus实例
2)发送方,触发Bus实例
①导入Bus实例
②通过$emit触发
3)接收方,监听Bus实例
①导入Bus实例
②通过$on接收消息

(3)示例:

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

(1)作用:跨层级共享数据

(2)父组件提供数据,子/孙组件接收数据

(3)数据可以是普通类型(非响应式),也可以是复杂类型(响应式)

1)非响应式

如上图的num

2)响应式

如上图的userInfo

相关推荐
专注API从业者7 小时前
Python + 淘宝 API 开发:自动化采集商品数据的完整流程
大数据·运维·前端·数据挖掘·自动化
烛阴8 小时前
TypeScript高手密技:解密类型断言、非空断言与 `const` 断言
前端·javascript·typescript
好望角雾眠9 小时前
第一阶段C#基础-10:集合(Arraylist,list,Dictionary等)
笔记·学习·c#
艾伦~耶格尔9 小时前
【集合框架LinkedList底层添加元素机制】
java·开发语言·学习·面试
样子20189 小时前
Uniapp 之renderjs解决swiper+多个video卡顿问题
前端·javascript·css·uni-app·html
星仔编程9 小时前
python学习DAY46打卡
学习
Nicholas689 小时前
flutterAppBar之SystemUiOverlayStyle源码解析(一)
前端
黑客飓风9 小时前
JavaScript 性能优化实战大纲
前端·javascript·性能优化
大霞上仙9 小时前
实现自学习系统,输入excel文件,能学习后进行相应回答
python·学习·excel
emojiwoo10 小时前
【前端基础知识系列六】React 项目基本框架及常见文件夹作用总结(图文版)
前端·react.js·前端框架