【Vue3】Props的使用詳解

💗💗💗歡迎來到我的博客,你將找到有關如何使用技術解決問題的文章,也會找到某個技術的學習路線。無論你是何種職業,我都希望我的博客對你有所幫助。最后不要忘記訂閱我的博客以獲取最新文章,也歡迎在文章下方留下你的評論和反饋。我期待著與你分享知識、互相學習和建立一個積極的社區。謝謝你的光臨,讓我們一起踏上這個知識之旅!
請添加圖片描述

文章目錄

  • 🍋介紹
  • 🍋回顧上節
  • 🍋props基本使用
  • 🍋優勢
  • 🍋總結

🍋介紹

在Vue3中,Props是一種用于從父組件向子組件傳遞數據的重要機制。Props可以讓我們以聲明式的方式將數據傳遞到子組件,使得組件之間的通信更加簡單和可靠。本文將詳細介紹Vue3中Props的用法

🍋回顧上節

我們首先在根組件中編寫下面的數組

let personList = [{id:'a01',name:'大饅頭',age:18},{id:'a02',name:'饅頭',age:19},{id:'a03)d03',name:'小饅頭',age:22}]

但是這并不是響應式的數據,接下來我們引入reactive

  import {reactive} from 'vue'

但是這樣子的話,我們如果在編寫代碼的時候打錯了,也是不會產生錯誤的,這時候我們就需要用之前學到了接口那節了,Persons是自定義的

 import {type Persons} from '@/types'let personList = reactive<Persons>([{id:'asudfysafd01',name:'張三',age:18},{id:'asudfysafd02',name:'李四',age:20},{id:'asudfysaf)d03',name:'王五',age:22}])

🍋props基本使用

接下來我們介紹本文的重點

我們首先在根組件定義一個a,同時我們定義一個list

<person a="饅頭" list="personList" />

這時候我們別忘了在子組件的模版里寫,要不然是不會有顯示的

    <h2>{{ a }}</h2><h2>{{ list }}</h2>

如果僅僅接受a和list的話

defineProps(['a','list'])

這樣子運行后的界面如下圖
在這里插入圖片描述
但是這并不是我們想要的,我們想要的是Personlist的每一列數據,我們稍加修改

<person a="饅頭" :list="personList" />

在這里插入圖片描述
但是這樣太丑了,我們在子組件中加點東西,下面的修改好的模版

v-for 是 Vue.js 提供的用來循環渲染列表的指令。通過 v-for,你可以遍歷數組或對象,并為每個項或鍵值對執行相應的 DOM 操作

<template><div class="person"><ul><li v-for="i in list" :key="i.id">{{i.name}} - {{i.age}}</li></ul>
</div></template>

下圖就是我們想要的展示了
在這里插入圖片描述
但是只接受的話,根組件如果寫錯了,有可能發現不出來,并且在頁面顯示上會產生一定的問題,這就需要我們加一點限制了

  // 接收list + 限制類型defineProps<{list:Persons}>()

一旦出錯會有提示
在這里插入圖片描述
還有一種更高級的,設置了一個默認值,同時使用?用來限制必要性

  //  接收list + 限制類型 + 限制必要性 + 指定默認值withDefaults(defineProps<{list?:Persons}>(),{list:()=> [{id:'a04',name:'棗饅頭',age:23}]})

注意:defineProps是一個用于定義組件 Props 的函數,它可以在組件的 setup 函數中直接使用,而無需導入

🍋優勢

優點:

簡潔明了: 使用 defineProps 可以在組件的 setup 函數中直接定義 Props,使得組件邏輯更加清晰和簡潔類型推斷: 在使用 defineProps 定義 Props 時,可以根據指定的類型進行類型推斷,提高了代碼的健壯性和可讀性默認值和屬性驗證: 可以方便地指定 Props 的默認值和進行屬性驗證,確保組件的穩健性和可靠性無需導入: 使用 defineProps 不需要導入任何其他模塊,可以直接在組件中使用,減少了代碼的復雜性

缺點:

僅適用于 setup 函數: defineProps 只能在組件的 setup 函數中使用,如果組件邏輯較為復雜,可能會導致 setup 函數過于臃腫無法在模板中直接使用: 使用 defineProps 定義的 Props 不能直接在模板中使用,需要在 setup 函數中將其映射到返回的對象中才能在模板中使用

🍋總結

通過上述內容,我們可以看到在Vue3中如何使用Props來實現父子組件之間的數據傳遞,并掌握了Props的基本用法、屬性驗證、默認值設置等技巧。 Props是Vue3中非常重要的一個特性,熟練掌握Props的使用將有助于我們更好地構建可復用、靈活的組件

請添加圖片描述

挑戰與創造都是很痛苦的,但是很充實。

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

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

相關文章

概率基礎——多元正態分布

概率基礎——多元正態分布 介紹 多元正態分布是統計學中一種重要的多維概率分布&#xff0c;描述了多個隨機變量的聯合分布。在多元正態分布中&#xff0c;每個隨機變量都服從正態分布&#xff0c;且不同隨機變量之間可能存在相關性。本文將以二元標準正態分布為例&#xff0…

多線程JUC 第2季 中斷線程

一 中斷線程 1.1 中斷概念 1.在java中&#xff0c;沒有提供一種立即停止一條線程。但卻給了停止線程的協商機制-中斷。 中斷是一種協商機制。中斷的過程完全需要程序員自己實現。也即&#xff0c;如果要中斷一個線程&#xff0c;你需要手動調用該線程的interrupt()方法&…

錄制用戶操作實現自動化任務

先上視頻&#xff01;&#xff01; 流程自動化工具-錄制操作繪制流程 這個想法之前就有了&#xff0c;趁著周末時間給它擼出來。 實現思路 從之前的文章自動化桌面未來展望中已經驗證了錄制繪制流程圖的可行性。基于DOM錄制頁面操作軌跡的思路監聽頁面點擊、輸入事件即可&…

無人機鏡頭穩定的原理和相關算法

無人機的鏡頭穩定主要基于兩個關鍵技術&#xff1a;鏡頭平衡技術和實時電子穩像。無人機鏡頭穩定的原理和相關算法主要是通過鏡頭平衡技術和實時電子穩像技術來保持攝像鏡頭的穩定性&#xff0c;從而拍攝出清晰、穩定的畫面。無人機鏡頭穩定的原理主要是通過傳感器和算法來實現…

Ocr之PaddleOcr模型訓練

目錄 一、系統環境 1 鏡像拉取ppocr 進行部署 2 安裝paddlepaddle 二、訓練前的準備 1 下載源碼 2 預模型下載 3 修改模型訓練文件yml 4 編排訓練集 5 執行腳本進行訓練 6 需要修改文件夾名稱 三、開始訓練 1 執行訓練命令 2 對第一次評估進行解釋 3 引言 五、總…

NestJS使用模板引擎ejs

模板引擎? 模板引擎是一種用于生成動態內容的工具&#xff0c;它通過將預定義的模板與特定數據結合&#xff0c;來生成最終的輸出。? 在NodeJS開發中&#xff0c;我們會使用模板引擎來渲染一些常用的頁面&#xff0c;比如渲染代表404的Not Found 頁面&#xff0c;502的Bad …

異常值檢測-值域法 頭歌代碼解釋

這關做得不是很明白&#xff0c;如果有清楚的同志可以在評論區里面討論 import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.neighbors import LocalOutlierFactor # 導入數據 abc pd.read_csv(deaths.csv) ## 只分析其中的Population和L…

C語言對類型的轉換

C語言對類型的轉換 文章目錄 C語言對類型的轉換整形提升和截斷整形提升整形提升規則整形提升的意義 截斷截斷規則 算數轉換 我們都知道&#xff0c;C語言中內置了多種整形類型&#xff0c;占用空間從大到小&#xff0c;基本滿足各類使用場景&#xff08;比如超長數字的運算就不…

【【C語言簡單小題學習-1】】

實現九九乘法表 // 輸出乘法口訣表 int main() {int i 0;int j 0;for (i 1; i < 9; i){for (j 1; j < i;j)printf("%d*%d%d ", i , j, i*j);printf("\n"); }return 0; }猜數字的游戲設計 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdi…

源碼視角,vue3為什么推薦用ref,而不是reactive

ref 和 reactive 是 Vue3 中實現響應式數據的核心 API。ref 用于包裝基本數據類型&#xff0c;而 reactive 用于處理對象和數組。盡管 reactive 似乎更適合處理對象&#xff0c;但 Vue3 官方文檔更推薦使用 ref。 我的想法&#xff0c;ref就是比reactive好用&#xff0c;官方也…

Java 中對包含關系的判斷

本文將為您詳細講解 Java 中對包含關系的判斷&#xff0c;包括數組、字符串等&#xff0c;并提供相應的代碼例子。 1. 數組包含關系判斷 在 Java 中&#xff0c;數組包含關系判斷通常使用循環來實現。以下是幾種常見的判斷方法&#xff1a; 示例 1&#xff1a;使用 for…

Unity曲柄滑塊四桿機構運動計算

一、運動效果 二、機構的介紹 曲柄長度&#xff1a;a&#xff0c;線段AB長度 連桿長度&#xff1a;b&#xff0c;線段BC長度 偏心距離&#xff1a;e&#xff0c;滑塊軌跡與曲柄中心點A的垂直距離 三、已知點A點B和e的值&#xff0c;計算C點的位置 1、計算s的值 var h math.…

通過多進程并發方式(fork)實現服務器(注意要回收子進程)

以下內容為視頻學習記錄。 1、父進程accept后返回的文件描述符為cfd以及用于創建連接的lfd; 調用fork()創建子進程后&#xff0c;子進程繼承cfd,lfd&#xff0c;通過該cfd與連接過來的客戶端通信,lfd對子進程來說沒用&#xff0c;可以直接close(lfd); 對于父進程來說&#x…

雙非二本找實習前的準備day4

學習目標&#xff1a; 每天2-3到簡單sql&#xff08;刷完即止&#xff09;&#xff0c;每天復習代碼隨想錄上的題目3道算法&#xff08;時間充足可以繼續&#xff09;&#xff0c;背誦的八股的問題也在這里記錄了 今日碎碎念&#xff1a; 1&#xff09;偶爾還是貪玩游戲&…

Vue中的計算屬性和方法有什么區別?

Vue.js是一款流行的JavaScript前端框架&#xff0c;提供了豐富的功能和便捷的開發方式。在Vue中&#xff0c;計算屬性和方法是常用的兩種方式來處理數據和邏輯。但它們之間存在一些區別&#xff0c;本文將詳細介紹Vue中計算屬性和方法的區別&#xff0c;并通過示例代碼加深理解…

183896-00-6,Biotin-C3-PEG3-C3-NH2,可以選擇性降解靶蛋白

您好&#xff0c;歡迎來到新研之家 文章關鍵詞&#xff1a;183896-00-6&#xff0c;Biotin-C3-PEG3-C3-NH2&#xff0c;Biotin-C3-PEG3-C3-amine&#xff0c;生物素-C3-PEG3-C3-胺 一、基本信息 【產品簡介】&#xff1a;Biotin-PEG3-C3-NH2是一種PROTAC linker&#xff0c;…

381. 有線電視網絡(網絡流,最小割,《算法競賽進階指南》)

381. 有線電視網絡 - AcWing題庫 給定一張 n 個點 m 條邊的無向圖&#xff0c;求最少去掉多少個點&#xff0c;可以使圖不連通。 如果不管去掉多少個點&#xff0c;都無法使原圖不連通&#xff0c;則直接返回 n。 輸入格式 輸入包含多組測試數據。 每組數據占一行&#xf…

Python推導式大全與實戰:精通列表、字典、集合和生成器推導式【第115篇—python:推導式】

Python推導式大全與實戰&#xff1a;精通列表、字典、集合和生成器推導式 Python語言以其簡潔、優雅的語法而聞名&#xff0c;其中推導式是其獨特之處之一。推導式是一種在一行代碼中構建數據結構的強大方式&#xff0c;它涵蓋了列表、字典、集合和生成器。本篇博客將全面介紹…

YOLOv8實例分割實戰:ONNX模型轉換及TensorRT部署

課程鏈接&#xff1a;https://edu.csdn.net/course/detail/39320 PyTorch版的YOLOv8支持高性能的實時實例分割。 TensorRT是針對英偉達GPU的加速工具。 ONNX &#xff08;Open Neural Network Exchange&#xff09; 作為一個開放的網絡模型中間表示&#xff08;IR&#xff0…

Redis命令大全

通用命令 KEYS pattern&#xff1a;查找所有符合給定模式&#xff08;pattern&#xff09;的 key。EXISTS key&#xff1a;檢查指定 key 是否存在。TYPE key&#xff1a;返回指定 key 的數據類型。DEL key [key …]&#xff1a;刪除指定的 key。RENAME key newkey&#xff1a;…