【Vue3】解鎖Vue3黑科技:探索接口、泛型和自定義類型的前端奇跡

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

文章目錄

  • 🍋介紹
  • 🍋接口
  • 🍋泛型
  • 🍋自定義類型
  • 🍋接口、泛型、自定義相對比
  • 🍋結論

🍋介紹

在Vue3中,我們不僅可以利用其強大的響應式系統和組件化開發來構建靈活的前端應用程序,還可以利用TypeScript(簡稱TS)的特性來增強代碼的可讀性、可維護性和類型安全性。在本文中,我們將深入探討Vue3中接口、泛型和自定義類型的使用,以便更好地利用這些功能來構建優秀的Vue應用

🍋接口

首先我們介紹一下接口

接口在Vue3中是一種定義對象結構的方式,它可以用來描述對象的形狀,包括屬性和方法。通過接口,我們可以明確指定組件的props、data等屬性的類型,從而在編譯時捕獲潛在的錯誤

老樣子,我們準備初始代碼

<template><div class="person">Python
</div></template><script lang="ts" setup name="Person11">let person = {id:'1515',name:'饅頭',age:22}</script><style scoped>.person {background-color: skyblue;box-shadow: 0 0 10px;border-radius: 10px;padding: 20px;}button {margin: 0 5px;}</style>

上面的代碼在頁面中僅僅顯示了Python
在這里插入圖片描述
如果我們寫代碼的時候,對于有些數據寫錯了但是又僅僅是失誤造成的,這樣是不會給我們進行錯誤提示的,這樣就需要我們使用接口了
在這里插入圖片描述
首先我們需要創建一個文件夾并創建index.ts文件,這樣創建的好處是引入路徑更方便
接下來我們定義一個接口,目的是為了限制Person對象的具體屬性

export interface PersonInter {id:string,name:string,age:number`  let personList = [{id:'a',name:'大饅頭',age:18},{id:'b',name:'中饅頭',age:19},{id:'c',name:'小饅頭',age:20}]`}

接下來我們進行導入

  import {type PersonInter} from '@/types'

同時我們進行定義,目的是讓Person符合這個PersonInter接口

  let person:PersonInter = {id:'1515',name:'饅頭',age:22}

🍋泛型

接下來我們定義一個數組

  let personList = [{id:'a',name:'大饅頭',age:18},{id:'b',name:'中饅頭',age:19},{id:'c',name:'小饅頭',age:20}]

如果我們想要這個數組也滿足規范應該怎么做呢,下面我將展示

  let personList : Array<PersonInter>= [{id:'a',name:'大饅頭',age:18},{id:'b',name:'中饅頭',age:19},{id:'c',name:'小饅頭',age:20}]

上面的含義主要是,數組中的每一個都將滿足規則
在這里插入圖片描述

🍋自定義類型

在index.ts中定義

  export type Persons = PersonInter[]

之后在Person.vue中進行導入即可,同時我們將之前的Array PersonInter修改為我們自定義的Persons就可以了,是不是很方便啊~~~

<template><div class="person">Python
</div></template><script lang="ts" setup name="Person11">import {type PersonInter,type Persons} from '@/types'let personList : Persons= [{id:'a',name:'大饅頭',age:18},{id:'b',name:'中饅頭',age:19},{id:'c',name:'小饅頭',age:20}]</script><style scoped>.person {background-color: skyblue;box-shadow: 0 0 10px;border-radius: 10px;padding: 20px;}button {margin: 0 5px;}</style>

🍋接口、泛型、自定義相對比

接口 vs 泛型:

接口用于描述對象的形狀,泛型用于增強代碼的靈活性。
接口在定義對象結構時更為直觀,而泛型適用于編寫通用的、適用于多種類型的代碼。


泛型 vs 自定義類型:

泛型用于增強代碼的靈活性,而自定義類型用于提高代碼的可讀性和類型安全性。
泛型可以用于編寫通用的代碼,而自定義類型用于定義具體的類型結構。

🍋結論

在Vue3中,接口、泛型和自定義類型是強大的工具,可以幫助我們編寫更加健壯、靈活和可維護的代碼。通過合理地使用這些功能,我們可以有效地減少錯誤,并提高代碼的質量和可讀性。因此,在開發Vue應用程序時,建議充分利用這些功能來提升開發效率和代碼質量

請添加圖片描述

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

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

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

相關文章

Android Compose - PlainTooltipBox(已廢棄)的替代方案

Android Compose - PlainTooltipBox 的替代方案 TooltipBox(positionProvider TooltipDefaults.rememberPlainTooltipPositionProvider(),tooltip {PlainTooltip {Text(/* tooltip content */)}},state rememberTooltipState(), ) {// tooltip anchorIconButton(onClick {…

跨站腳本攻擊xss-labs(1-20)靶機練手

目錄 一、跨站腳本攻擊&#xff08;XSS&#xff09; 1.1 漏洞簡介 1.2:類型 1.3 XSS危害 1.4XSS防御規則 二、環境搭建 三、xsst通關記錄 Level 1&#xff1a;文本解析為 HTML Level 2&#xff1a;htmlspecialchars;input 標簽 value 注入 定義和用法 字符過濾繞過 …

從零自制docker-1-【環境配置 docker go介紹與安裝】

文章目錄 docker簡介舉例docker安裝go語言go安裝go 配置 docker簡介 Docker可以看作是一種極其輕巧的“虛擬機”&#xff0c;它允許你將一個或多個程序及其運行環境打包在一起&#xff0c;形成一個標準化的單元&#xff0c;這個單元可以在任何支持Docker的系統上運行&#xff…

實用!IntelliJ IDEA離線開發使用要點(一)

如果IntelliJ IDEA在本地網絡之外沒有HTTP訪問&#xff0c;它將無法檢查更新和應用補丁。在這種情況下&#xff0c;您必須下載新版本的IDE并按照離線安裝中的描述手動安裝它們。 IDEA v2023.3正式版下載 注意&#xff1a;沒有互聯網接入&#xff0c;您不能安裝IntelliJ IDEA使…

SaaS 電商設計 (九) 動態化且易擴展的實現購物車底部彈層(附:一套普適的線上功能切量的發布方案)

目錄 一.背景1.1 業務背景1.2 技術負債 二.技術目標三.方案設計3.1 解決移動端頻繁發版3.1.1 場景分析3.1.2 技術方案 3.2 減少后端壞味道代碼&無法靈活擴展問題3.2.1 通過抽象接口完成各自單獨樓層渲染邏輯3.2.2 通過配置能力做到部分字段可配 四.升級上線(普適于高并發大…

2314576

? 通用計算機啟動過程 1??一個基礎固件&#xff1a;BIOS 一個基礎固件&#xff1a;BIOS→基本IO系統&#xff0c;它提供以下功能&#xff1a; 上電后自檢功能 Power-On Self-Test&#xff0c;即POST&#xff1a;上電后&#xff0c;識別硬件配置并對其進行自檢&#xff0c…

學習JAVA的第十二天(基礎)

算法 算法&#xff08;Algorithm&#xff09;是指解題方案的準確而完整的描述&#xff0c;是一系列解決問題的清晰指令&#xff0c;算法代表著用系統的方法描述 解決問題的策略 機制。 查找算法 基本查找&#xff08;順序查找&#xff09; 關鍵&#xff1a; 從0索引開始依次向…

學習:吳恩達:什么是神經元?神經網絡如何工作?

學習-吳恩達《AI for everyone》2019 深度學習非技術解釋 第2部分 可選.zh_嗶哩嗶哩_bilibili 深度學習Deep learning 人工神經網絡Artificial Neural network 什么是神經網絡&#xff1f; 只有一個神經元 4個神經元的神經網絡 神經網路的絕妙之處 神經網路的絕妙之處就在…

ctf_show筆記篇(web入門---信息收集)

目錄 信息收集 1-2&#xff1a;查看源代碼 3&#xff1a;bp抓包 4&#xff1a;robots.txt&#xff08;這個文件里會寫有網站管理者不想讓爬蟲的頁面或其他&#xff09; 5&#xff1a;網站源代碼泄露index.phps 6&#xff1a;同樣也是源碼泄露&#xff0c;&#xff08;拿到…

Java快讀

java的快讀 (1)BufferedReader BufferedReader br new BufferedReader(new InputStreamReader(System.in));//定義對象String[] strings br.readLine().split(" ");//讀取一行字符串&#xff0c;以空格為分隔轉化為字符串數組int n Integer.parseInt(strings[0])…

k8s分布式圖床(k8s,metricsapi,vue3+ts)

image-manage 圖像管理應用 圖像管理應用提供了一個方便管理圖片的平臺&#xff0c;支持單機和Kubernetes集群部署。請確保您至少擁有一個MySQL數據庫和一個Redis數據庫&#xff0c;以及一個至少為Kubernetes 1.29版本的集群&#xff08;如果選擇集群部署&#xff09;。 文檔…

PCL1.14.0安裝、使用教程

寫在前面 本文內容 本文是PCL1.14.0在Windows下的安裝、使用教程&#xff1b; PCL、Open3D其他版本的編譯和使用相關教程見 各個版本的Open3D、PCL的編譯、使用教程平臺/環境 windows11(windows10): visual studio 2022&#xff1b;cmake 3.22; VsCode轉載請注明出處&#xff…

http和https的區別是什么?

–前言 傳輸信息安全性不同、連接方式不同、端口不同、證書申請方式不同 一、傳輸信息安全性不同 1、http協議&#xff1a;是超文本傳輸協議&#xff0c;信息是明文傳輸。如果攻擊者截取了Web瀏覽器和網站服務器之間的傳輸報文&#xff0c;就可以直接讀懂其中的信息。 2、h…

關于django makemigrations/migrate在生成數據表上遇到的一些問題

當你刪除了生成的 migration 文件夾&#xff0c;將數據庫從 SQLite 切換到 MySQL&#xff0c;并且在執行 makemigrations 命令時顯示沒有變化&#xff0c;同時 MySQL 中沒有生成表&#xff0c;可能是由于以下原因造成的&#xff1a; Django遷移系統的工作方式&#xff1a;Djang…

排序(3)——直接選擇排序

目錄 直接選擇排序 基本思想 整體思路&#xff08;升序&#xff09; 單趟 多趟 代碼實現 特性總結 直接選擇排序 基本思想 每一次從待排序的數據元素中選出最小&#xff08;或最大&#xff09;的一個元素&#xff0c;存放在序列的起始位置&#xff0c;直到全部待排序的…

軟考 系統分析師系列知識點之詳細調查(3)

接前一篇文章&#xff1a;軟考 系統分析師系列知識點之詳細調查&#xff08;2&#xff09; 所屬章節&#xff1a; 第10章. 系統分析 第2節. 詳細調查 在系統規劃階段&#xff0c;通過初步調查&#xff0c;系統分析師已經對企業的組織結構、系統功能等有了大致的了解。但是&…

力扣203移除鏈表元素

題目&#xff1a; 203. 移除鏈表元素 給你一個鏈表的頭節點 head 和一個整數 val &#xff0c;請你刪除鏈表中所有滿足 Node.val val 的節點&#xff0c;并返回 新的頭節點 。 1&#xff0c;設置一個頭節點&#xff0c;統一操作。 2&#xff0c;這里是用p查找&#xff0c;但是…

BUUCTF---數據包中的線索1

1.題目描述 2.下載附件&#xff0c;是一個.pcap文件 3.放在wireshark中&#xff0c;仔細觀察數據流&#xff0c;會發現有個叫fenxi.php的數據流 4.這條數據流是http,且使用GET方式&#xff0c;接下來我們使用http.request,methodGET 命令來過濾數據流 5.在分析欄中我們追蹤htt…

查看端口占用命令

fuser 8080/tcp netstat -tuln | grep 8080 lsof -i:8080 ss -tuln | grep 8080

在Linux上使用通用二進制包安裝MySQL

下載安裝包 MySQL Community Downloads 安裝依賴 mysql 數據目錄初始化及服務啟動階段依賴libaio&#xff0c;檢測是否已安裝libaio dnf install libaio解壓安裝 ## 創建用戶組 groupadd mysql ## 創建用戶 useradd -r -g mysql -s /bin/false mysql ## 解壓安裝包 tar xv…