当前位置: 首页 > news >正文

【Vue】scoped+组件通信+props校验

【scoped作用及原理】

【作用】

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

故而可以给组件加上scoped 属性, 令样式只作用于当前组件的标签

作用:防止不同vue组件样式污染

【原理】

给组件加上scoped 属性后, 组件发生如下变化:

1. 组件内所有标签都被添加了一个名为data-v-xxxx(八位随机字符串) 的自定义属性(因此, 每个组件生成的这个属性名都各不相同)

2. scope会用这个属性构成属性选择器, 配合程序员编写的选择器, 形成了一个交集选择器

最终:  必须是当前组件的元素, 才会有这个自定义属性, 从而保证了样式只能作用到当前组件

【组件通信】

一个组件把数据传递给另一个组件

组件化开发中,通过代码拆分和组合化作一系列组件的方式进行开发,这种情况下,组件之间难免需要数据传递,这就需要组件通信

因此, 需要辨别两个组件之间的关系, 从而选择不同的组件方案

【父子组件】

父传子: props自定义属性

子传父: emit自定义事件

【非父子组件】

1.祖先与后代: provide() + inject()

2.兄弟组件: eventBus()

【如何辨别关系】

 父子关系: 谁使用, 谁就是父组件, 谁被使用, 谁就是子组件

【父传子原理】

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

【子传父】

props是只读的,子组件不能修改父组件传递的数据,

因此可以通过emit方式, 通知父组件,父组件收到通知后自行修改 

图中子传父流程:

1.父组件通过点击砍一刀按钮, 执行onCut函数, onCut函数调用emit方法, emit触发子组件的ccc自定义事件

2.ccc事件触发subPrice函数, 并获得emit方法传过去的值用于subPrice的参数, 从而成功执行砍一刀功能

【props校验】

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

语法:

也可以写成完整写法, 达成一些更复杂的需求

【组件的 ref/reactive 与props 的区别】

共同点

都可以给组件提供数据

区别

 1.ref/reactive 的数据是组件自己的 → 随便改, 可读可写

2.prop 的数据是外部的, 是父组件提供的 → 不能直接改,遵循单向数据流原则, 子组件若想改, 需要用到子传父的通信规则

单向数据流: 子组件的props数据来源于父组件, 当父组件数据改了, 会影响子组件的props,这个方向只能是父 --> 子 

相关文章:

  • DingDing机器人群消息推送
  • 二维FDTD算法仿真
  • JVM如何优化
  • Qt学习及使用_第1部分_认识Qt---Qt开发基本流程
  • AirPosture | 通过 AirPods 矫正坐姿
  • while/do while/for循环几个小细节
  • 免费数学几何作图web平台
  • React中子传父组件通信操作指南
  • JavaScript的ArrayBuffer与C++的malloc():两种内存管理方式的深度对比
  • Linux进程信号(一)
  • LLMs 系列实操科普(2)
  • Spring Boot面试题精选汇总
  • 如何做好一份技术文档?从规划到实践的完整指南
  • React从基础入门到高级实战:React 实战项目 - 项目五:微前端与模块化架构
  • ubuntu22.04 安装docker 和docker-compose
  • 安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖
  • 在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
  • 【自动控制原理】分析和设计控制系统的性能(*^▽^*)
  • docker容器互联
  • Spring事务传播机制有哪些?
  • 中国人民建设人行网站首页/网络测试
  • visual studio制作网站开发/app推广引流
  • 创建直播平台/成都市seo网站公司
  • 怎么利用QQ空间给网站做排名/推广方式有哪几种
  • 嘉兴地区有人做网站吗/5g网络优化工程师
  • 图片摄影网站/百度一下电脑版网页