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

Vue2.x核心技术与实战(三)

目录

四、Vue2.x:组件通信&进阶用法

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

4.1.0 组件的三大组成部分-注意点说明

4.1.1 组件的样式冲突 scoped

4.1.2 data是一个函数

4.2 组件通信

4.2.1 什么是组件通信

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

4.2.2 父传子

4.2.3 子传父

什么是 prop

props 校验

prop & data、单向数据流

4.2.4 非父子通信(拓展)

event bus 事件总线

provide & inject

4.3 综合案例:小黑记事本(组件版)

4.3.1 拆分基础组件

4.3.2 渲染待办任务

4.3.3 添加任务

4.3.4 删除任务

4.3.5 底部合计和清空功能

4.3.6 持久化存储

4.4 进阶语法

4.4.1 v-model原理

4.4.2 表单类组件封装 & v-model 简化代码

4.4.3 .sync修饰符

4.4.4 ref和$refs

① 获取dom:

② 获取组件:

4.4.5 Vue异步更新、$nextTick

四、Vue2.x:组件通信&进阶用法

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

4.1.0 组件的三大组成部分-注意点说明

4.1.1 组件的样式冲突 scoped

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

  1. 全局样式:默认组件中的样式会作用到全局
  2. 局部样式:可以给组件加上 scoped 属性,可以让样式只作用于当前组件

scoped原理?

  1. 当前组件内标签都被添加data-v-hash值的属性
  2. css选择器都被添加[data-v-hash值]的属性选择器

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



 

4.1.2 data是一个函数

一个组件的 data 选项必须是一个函数。→ 保证每个组件实例,维护独立的一份数据对象。

每次创建新的组件实例,都会新执行一次data函数,得到一个新对象。


 


总结:

组件三大组成部分的注意点:

  1. 结构:有且只能一个根元素
  2. 样式:默认全局样式,加上scoped局部样式
  3. 逻辑:data是一个函数,保证数据独立。
     

4.2 组件通信

4.2.1 什么是组件通信

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

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

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

组件关系分类:

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

组件通信解决方案:

父子通信流程图:

  1. 父组件通过 props 将数据传递给子组件
  2. 子组件利用 $emit 通知父组件修改更新
     

4.2.2 父传子

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

4.2.3 子传父

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

总结:

1. 两种组件关系分类和对应的组件通信方案

  • 父子关系 → props & $emit
  • 非父子关系 → provide & inject 或 eventbus
  • 通用方案 → vuex

2. 父子通信方案的核心流程

2.1 父传子props:

① 父中给子添加属性传值  ② 子props接收  ③ 子组件使用

2.2 子传父$emit:

① 子$emit发送消息  ② 父中给子添加消息监听  ③ 父中实现处理函数
 

什么是 prop

prop定义:

http://www.dtcms.com/a/344913.html

相关文章:

  • 掌握DRF的serializer_class:高效API开发
  • [激光原理与应用-318]:光学设计 - Solidworks - 草图中常见的操作
  • PCIe 5.0 SSD的发热量到底有多大?如何避免?
  • ubuntu - 终端工具 KConsole安装
  • DL00433-基于深度学习的无人机红外成像系统可视化含数据集
  • 【数据结构】选择排序:直接选择与堆排序详解
  • 【小白笔记】 MNN 移动端大模型部署
  • Java试题-选择题(14)
  • 新能源知识库(83)新能源行业的标准制定机构介绍
  • 期权买沽是什么意思?
  • python3GUI--Joy音乐播放器 在线播放器 播放器 By:PyQt5(附下载地址)
  • DAY01:【DL 第一弹】深度学习的概述
  • 什么是哈希值(hash value)???
  • FFmpeg03:多媒体文件处理基础
  • ffmpeg 中 crc32 源码分析及调试
  • vagrant怎么在宿主机操作虚拟机里面的系统管理和软件安装
  • xilinx的oddr原语是否可以直接使用verilog实现?
  • ingress和service区别
  • 20250822解决荣品RD-RK3588-MID核心板出现插USB开机-长按RESET开机的问题
  • 基于LangChain + Milvus 实现RAG
  • 升级 Docker Compose 到最新版本:从安装到验证全指南
  • SOLIDWORKS 2025智能工具优化设计流程
  • 数据结构: 2-3 树的删除操作 (Deletion)
  • Maven的概念与Maven项目的创建
  • 线程异步操作
  • LoRA内部原理代码解析(52)
  • 【笔记】动手学Ollama 第七章 应用案例 Agent应用
  • SpringBoot项目创建的五种方式
  • 线性回归:机器学习中的基石
  • Unreal Engine UE_LOG