2.10組件間的通信

1.Vue組件的嵌套關系

1.1認識組件的嵌套

前面我們是將所有的邏輯放到一個 App.vue 中;

  • 在之前的案例中,我們只是創建了一個組件 App;
  • 如果我們一個應用程序所有的邏輯都放在一個組件中,那么這個組件就會變成非常的臃腫和難以維護;
  • 所以組件化的核心思想應該是對組件進行拆分,拆分成一個個小的組件;
  • 再將這些組件組合嵌套在一起,最終形成我們的應用程序;

1.2組件關系之間的案例

2.父組件傳遞子組件

2.1組件嵌套和組件通信初認識

組件嵌套關系與通信必要性

一、組件嵌套關系
  • App 組件是?HeaderMainFooter?組件的父組件
  • Main?組件是?BannerProductList?組件的父組件
二、組件通信的場景(為何需要組件通信?)

Vue 項目開發中,組件間經常需要相互通信,常見場景包括:

  1. 父組件向子組件傳遞數據:
    • 示例 1:App 組件若使用多個?Header,需向不同?Header?傳遞不同數據,以展示差異化內容;
    • 示例 2:Main?組件一次性請求到?Banner?數據和?ProductList?數據后,需將數據傳遞給?Banner?組件和?ProductList?組件。
  2. 子組件向父組件傳遞事件 / 通知:
    當子組件內部發生特定事件(如點擊操作、數據狀態變化)時,需要通知父組件執行對應操作(如修改父組件數據、觸發父組件方法)。
三、總結

組件間通信是 Vue 項目開發的核心環節之一,后續將具體學習組件之間傳遞數據的方法。

2.1父組件傳遞子組件---數組用法

2.2父組件傳遞子組件----對象用法

3.非props的attribute

  • 什么是非 Prop 的 Attribute 呢?
    • 當我們傳遞給一個組件某個屬性,但是該屬性并沒有定義對應的 props 或者 emits 時,就稱之為?非 Prop 的 Attribute
    • 常見的包括 class、style、id 屬性等;
  • Attribute 繼承
    • 當組件有單個根節點時,非 Prop 的 Attribute 將自動添加到根節點的 Attribute 中:

00.禁用Attribute繼承和多根節點

如果我們不希望組件的根元素繼承 attribute,可以在組件中設置?inheritAttrs: false

  • 禁用 attribute 繼承的常見情況是需要將 attribute 應用于根元素之外的其他元素;
  • 我們可以通過?$attrs?來訪問所有的非 props 的 attribute;

代碼塊:

html

<div>我是NotPropAttribute組件<h2 :class="$attrs.class"></h2>
</div>

多個根節點的 attribute

  • 多個根節點的 attribute 如果沒有顯示的綁定,那么會報警告,我們必須手動的指定要綁定到哪一個屬性上:

4.子組件傳遞父組件

  • 什么情況下子組件需要傳遞內容到父組件呢?

    • 當子組件有一些事件發生的時候,比如在組件中發生了點擊,父組件需要切換內容;
    • 子組件有一些內容想要傳遞給父組件的時候;
  • 我們如何完成上面的操作呢?

    • 首先,我們需要在子組件中定義好在某些情況下觸發的事件名稱;
    • 其次,在父組件中以on-的方式傳入要監聽的事件名稱,并且綁定到對應的方法中;
    • 最后,在子組件中發生某個事件的時候,根據事件名稱觸發對應的事件;

5.組件通信案例練習

6.自定義事件的參數和驗證

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/96603.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/96603.shtml
英文地址,請注明出處:http://en.pswp.cn/web/96603.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Mybatis-Plus學習筆記

目錄 一、MyBatis-Plus簡介 二、MyBatisPlus使用的基本流程&#xff1a; &#xff08;1&#xff09;引入MybatisPlus依賴&#xff0c;代替MyBatis依賴 &#xff08;2&#xff09;自定義Mapper繼承BaseMapper ?編輯&#xff08;3&#xff09;在實體類上添加注解聲明表信息…

Day22 用C語言編譯應用程序

文章目錄1. 保護操作系統5&#xff08;harib19a&#xff09;2. 幫助發現bug&#xff08;harib19b&#xff09;3. 強制結束應用程序&#xff08;harib19c&#xff09;4. 用C語言顯示字符串&#xff08;harib19e&#xff09;5. 顯示窗口&#xff08;harib19f&#xff09;1. 保護操…

簡單學習HTML+CSS+JavaScript

一、HTML HTML被稱為 超文本標記語言&#xff0c;是由一系列標簽構成的語言。 下面介紹HTML中的標簽&#xff1a; &#xff08;一&#xff09;HTML文件基本結構 <!DOCTYPE html><html><head><title>Document</title></head> <body&…

強化學習中重要性采樣

PPO 中重要性采樣 https://github.com/modelscope/ms-swift/blob/main/docs/source/Instruction/GRPO/GetStarted/GRPO.md樂&#xff0c;這個網頁中是的groundtruth是錯誤的&#xff08;可能是為了防止抄襲&#xff09;。一些例子 0. 池塘養魚的一個例子 想象一下&#xff0c;你…

《樹與二叉樹詳解:概念、結構及應用》

目錄 一. 樹的概念和結構 1.1 樹的基本概念 1.2 樹的結構特點 二. 樹的表示方法和實際運用 2.1 孩子 - 兄弟表示法&#xff08;Child-Sibling Representation&#xff09; 2.2 樹的實際應用場景 三. 二叉樹的概念 3.1 二叉樹的核心定義 3.2 二叉樹的基本分類 四. 二叉…

Qt/C++,windows多進程demo

1. 項目概述 最近研究了一下Qt/C框架下&#xff0c;windows版本的多進程編寫方法&#xff0c;實現了一個小demo。下面詳細介紹一下。 MultiProcessDemo是一個基于Qt框架實現的多進程應用程序示例&#xff0c;展示了如何在Windows平臺上通過共享內存和事件機制實現進程間通信。該…

Android SystemServer 系列專題【篇五:UserController用戶狀態控制】

本篇接著SystemServer的啟動流程&#xff0c;圍繞SystemServer最后階段關于主用戶的啟動和解鎖的流程&#xff0c;作為切入點&#xff0c;來看看SystemServer是如何講用戶狀態同步到所有的系統級服務中。ssm.onStartUserssm.onUnlockingUserssm.onUnlockedUser本篇先介紹UserCo…

推薦使用 pnpm 而不是 npm

npm 的局限性 磁盤空間浪費在 npm 早期版本中&#xff0c;每個項目的node_modules目錄都會完整復制所有依賴包&#xff0c;即使多個項目依賴同一個包的相同版本&#xff0c;也會重復存儲。這導致磁盤空間被大量占用&#xff0c;隨著項目數量的增加&#xff0c;存儲成本顯著上升…

Transformer實戰(18)——微調Transformer語言模型進行回歸分析

Transformer實戰&#xff08;18&#xff09;——微調Transformer語言模型進行回歸分析0. 前言1. 回歸模型2. 數據處理3. 模型構建與訓練4. 模型推理小結系列鏈接0. 前言 在自然語言處理領域中&#xff0c;預訓練 Transformer 模型不僅能勝任離散類別預測&#xff0c;也可用于連…

【Linux】【實戰向】Linux 進程替換避坑指南:從理解 bash 阻塞等待,到親手實現能執行 ls/cd 的 Shell

前言&#xff1a;歡迎各位光臨本博客&#xff0c;這里小編帶你直接手撕&#xff0c;文章并不復雜&#xff0c;愿諸君耐其心性&#xff0c;忘卻雜塵&#xff0c;道有所長&#xff01;&#xff01;&#xff01;&#xff01; IF’Maxue&#xff1a;個人主頁&#x1f525; 個人專欄…

linux常用命令 (3)——系統包管理

博客主頁&#xff1a;christine-rr-CSDN博客 ????? ?? hi&#xff0c;大家好&#xff0c;我是christine-rr ! 今天來分享一下linux常用命令——系統包管理 目錄linux常用命令---系統包管理&#xff08;一&#xff09;Debian 系發行版&#xff08;Ubuntu、Debian、Linux …

YOLOv8 mac-intel芯片 部署指南

&#x1f680; 在 Jupyter Notebook 和 PyCharm 中使用 Conda 虛擬環境&#xff08;YOLOv8 部署指南&#xff0c;Python 3.9&#xff09; YOLOv8 是 Ultralytics 開源的最新目標檢測模型&#xff0c;輕量高效&#xff0c;支持分類、檢測、分割等多種任務。 在 Mac&#xff08;…

【高等數學】第十一章 曲線積分與曲面積分——第六節 高斯公式 通量與散度

上一節&#xff1a;【高等數學】第十一章 曲線積分與曲面積分——第五節 對坐標的曲面積分 總目錄&#xff1a;【高等數學】 目錄 文章目錄1. 高斯公式2. 沿任意閉曲面的曲面積分為零的條件3. 通量與散度1. 高斯公式 設空間區域ΩΩΩ是由分片光滑的閉曲面ΣΣΣ所圍成&#x…

IDEA試用過期,無法登錄,重置方法

IDEA過期&#xff0c;重置方法: IntelliJ IDEA 2024.2.0.2 (親測有效) 最新Idea重置辦法!&#xff1a; 方法一&#xff1a; 1、刪除C:\Users\{用戶名}\AppData\Local\JetBrains\IntelliJIdea2024.2 下所有文件(注意&#xff1a;是子目錄全部刪除) 2、刪除C:\Users\{用戶名}\App…

創建用戶自定義橋接網絡并連接容器

1.創建用戶自定義的 alpine-net 網絡[roothost1 ~]# docker network create --driver bridge alpine-net 9f6d634e6bd7327163a9d83023e435da6d61bc6cf04c9d96001d1b64eefe4a712.列出 Docker 主機上的網絡[roothost1 ~]# docker network ls NETWORK ID NAME DRIVER …

Vue3 + Vite + Element Plus web轉為 Electron 應用,解決無法登錄、隱藏自定義導航欄

如何在vue3 Vite Element Plus搭好的架構下轉為 electron應用呢&#xff1f; https://www.electronjs.org/zh/docs/latest/官方文檔 https://www.electronjs.org/zh/docs/latest/ 第一步&#xff1a;安裝 electron相關依賴 npm install electron electron-builder concurr…

qt QAreaLegendMarker詳解

1. 概述QAreaLegendMarker 是 Qt Charts 模塊中的一部分&#xff0c;用于在圖例&#xff08;Legend&#xff09;中表示 QAreaSeries 的標記。它負責顯示區域圖的圖例項&#xff0c;通常包含區域顏色樣例和對應的描述文字。圖例標記和對應的區域圖關聯&#xff0c;顯示區域的名稱…

linux 函數 kstrtoul

kstrtoul 函數概述 kstrtoul 是 Linux 內核中的一個函數&#xff0c;用于將字符串轉換為無符號長整型&#xff08;unsigned long&#xff09;。該函數定義在 <linux/kernel.h> 頭文件中&#xff0c;常用于內核模塊中解析用戶空間傳遞的字符串參數。 函數原型 int kstrtou…

LLM(三)

一、人類反饋的強化學習&#xff08;RLHF&#xff09;微調的目標是通過指令&#xff0c;包括路徑方法&#xff0c;進一步訓練你的模型&#xff0c;使他們更好地理解人類的提示&#xff0c;并生成更像人類的回應。RLHF&#xff1a;使用人類反饋微調型語言模型&#xff0c;使用強…

DPO vs PPO,偏好優化的兩條技術路徑

1. 背景在大模型對齊&#xff08;alignment&#xff09;里&#xff0c;常見的兩類方法是&#xff1a;PPO&#xff1a;強化學習經典算法&#xff0c;OpenAI 在 RLHF 里用它來“用獎勵模型更新策略”。DPO&#xff1a;2023 年提出的新方法&#xff08;參考論文《Direct Preferenc…