【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,這個方向只能是父 --> 子?

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

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

相關文章

IDEA 中 Maven Dependencies 出現紅色波浪線的原因及解決方法

在使用 IntelliJ IDEA 開發 Java 項目時,尤其是基于 Maven 的項目,開發者可能會遇到 Maven Dependencies 中出現紅色波浪線的問題。這種現象通常表示項目依賴未能正確解析或下載,導致代碼提示錯誤、編譯失敗等問題。本文將詳細分析該問題的常…

把二級域名綁定的wordpress網站的指定頁面

要將二級域名(如 beijing.wodepress.com)綁定到 WordPress 網站的指定頁面(如 wodepress.com/beijing),你需要完成以下步驟: 步驟 1:創建二級域名 登錄你的域名控制面板(如 cPanel、阿里云、騰訊云等)。 找到 DNS 管理 或 域名解析 部分。…

FreeRTOS學習01_移植FreeRTOS到STM32(圖文詳解)

移植FreeRTOS到STM32 1、前言2、獲取 STM32 的裸機工程模板3、下載 FreeRTOS V9.0.0 源碼4、FreeRTOS文件夾內容簡介5、移植FreeRTOS5.1 更改STM32工程模板文件夾名字5.2 提取FreeRTOS最簡源碼5.3 拷貝 FreeRTOSConfig.h 文件到 user 文件夾5.4 添加 FreeRTOS 源碼到工程組文件…

12.找到字符串中所有字母異位詞

🧠 題目解析 題目描述: 給定兩個字符串 s 和 p,找出 s 中所有 p 的字母異位詞的起始索引。 返回的答案以數組形式表示。 字母異位詞定義: 若兩個字符串包含的字符種類和出現次數完全相同,順序無所謂,則互為…

基于Springboot+Vue的辦公管理系統

角色: 管理員、員工 技術: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 該辦公管理系統是一個綜合性的企業內部管理平臺,旨在提升企業運營效率和員工管理水…

【磁盤】每天掌握一個Linux命令 - iostat

目錄 【磁盤】每天掌握一個Linux命令 - iostat工具概述安裝方式核心功能基礎用法進階操作實戰案例面試題場景生產場景 注意事項 【磁盤】每天掌握一個Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系統下用于監視系統輸入輸出設備和CPU使…

專業文件比對輔助軟件

軟件介紹 本文介紹一款用于文件內容對比的計算機輔助工具,支持快速識別不同版本文檔間的差異內容。 功能與版本特性 這款工具提供無償使用授權,技術文檔顯示其開發歷程已達近三十年。程序采用獨立封裝設計,無需安裝即可直接運行。 基礎操…

【時時三省】(C語言基礎)變量的存儲方式和生存期

山不在高,有仙則名。水不在深,有龍則靈。 ----CSDN 時時三省 動態存儲方式與靜態存儲方式 從變量的作用域(即從空間)的角度來觀察,變量可以分為全局變量和局部變量。 還可以從另一個角度,即從變量值存在…

記錄:外擴GPIOD訪問報警告

rk提供的rfkill-bt.c驅動訪問外擴GPIO輸出如下警告: [ 4.694993] ------------[ cut here ]------------ [ 4.694994] WARNING: CPU: 7 PID: 582 at drivers/gpio/gpiolib.c:2805 gpiod_get_raw_value0x58/0xd4 [ 4.695003] Modules linked in: [ 4.69…

LangChain面試內容整理-知識點4:工具(Tool)機制與實現

在LangChain中,工具(Tool)是智能體(Agent)、鏈(Chain)或LLM可以調用的外部函數接口。可以將Tool理解為LLM可以使用的能力或插件:通過調用工具,LLM能夠獲取額外的信息或執行特定的動作,比如查詢數據庫、搜索互聯網、做數學計算等comet.compinecone.io。工具賦予了LLM交…

GraphQL 實戰篇:Apollo Client 配置與緩存

GraphQL 實戰篇:Apollo Client 配置與緩存 上一篇:GraphQL 入門篇:基礎查詢語法 依舊和上一篇的筆記一樣,主實操,沒啥過多的細節講解,代碼具體在: https://github.com/GoldenaArcher/graphql…

web3-基于貝爾曼福特算法(Bellman-Ford )與 SMT 的 Web3 DeFi 套利策略研究

web3-基于貝爾曼福特算法(Bellman-Ford )與 SMT 的 Web3 DeFi 套利策略研究 如何找到Defi中的交易機會 把defi看做是一個完全開放的金融產品圖表,可以看到所有的一切東西;我們要沿著這些金融圖表找到一些最優的路徑,就…

SQL Server 觸發器調用存儲過程實現發送 HTTP 請求

文章目錄 需求分析解決第 1 步:前置條件,啟用 OLE 自動化方式 1:使用 SQL 實現啟用 OLE 自動化方式 2:Sql Server 2005啟動OLE自動化方式 3:Sql Server 2008啟動OLE自動化第 2 步:創建存儲過程第 3 步:創建觸發器擴展 - 如何調試?第 1 步:登錄 SQL Server 2008第 2 步…

Go 語言中的內置運算符

1. 算術運算符 注意: (自增)和--(自減)在 Go 語言中是單獨的語句,并不是運算符。 package mainimport "fmt"func main() {fmt.Println("103", 103) // 13fmt.Println("10-3…

SQL注入篇-sqlmap的配置和使用

在之前的皮卡丘靶場第五期SQL注入的內容中我們談到了sqlmap,但是由于很多朋友看不了解命令行格式,所以是純手動獲取數據庫信息的 接下來我們就用sqlmap來進行皮卡丘靶場的sql注入學習,鏈接:https://wwhc.lanzoue.com/ifJY32ybh6vc…

發立得信息發布系統房屋信息版(php+mysql)V1.0版

# 發立得信息發布系統房屋信息版(phpmysql) 一個輕量級的房屋信息發布平臺,基于PHP和MySQL開發,支持用戶發布房屋出售/出租信息,以及后臺管理功能。 輕量級適合網站開發PHP方向入門者學習,首發版本,未經實際業務流程檢…

學習 React【Plan - June - Week 1】

一、使用 JSX 書寫標簽語言 JSX 是一種 JavaScript 的語法擴展,React 使用它來描述用戶界面。 什么是 JSX? JSX 是 JavaScript 的一種語法擴展。看起來像 HTML,但它實際上是在 JavaScript 代碼中寫 XML/HTML。瀏覽器并不能直接運行 JSX&…

小智AI+MCP

什么是小智AI和MCP 如果還不清楚的先看往期文章 手搓小智AI聊天機器人 MCP 深度解析:AI 的USB接口 如何使用小智MCP 1.刷支持mcp的小智固件 2.下載官方MCP的示例代碼 Github:https://github.com/78/mcp-calculator 安這個步驟執行 其中MCP_ENDPOI…

基于python大數據的口紅商品分析與推薦系統

博主介紹:高級開發,從事互聯網行業六年,熟悉各種主流語言,精通java、python、php、爬蟲、web開發,已經做了多年的設計程序開發,開發過上千套設計程序,沒有什么華麗的語言,只有實實在…

ArcPy擴展模塊的使用(3)

管理工程項目 arcpy.mp模塊允許用戶管理布局、地圖、報表、文件夾連接、視圖等工程項目。例如,可以更新、修復或替換圖層數據源,修改圖層的符號系統,甚至自動在線執行共享要托管在組織中的工程項。 以下代碼展示了如何更新圖層的數據源&…