Vue.js 什么是 Composition API?

Vue.js 什么是 Composition API?

今天我們來聊聊 Vue 3 引入的一個重要特性:組合式 API(Composition API)。如果你曾在開發復雜的 Vue 組件時感到代碼難以維護,那么組合式 API 可能正是你需要的工具。

什么是組合式 API?

組合式 API 是 Vue 3 提供的一套基于函數的 API,允許開發者以更靈活的方式組織組件邏輯。與傳統的選項式 API(Options API)不同,組合式 API 使我們能夠根據功能將相關代碼組合在一起,提升代碼的可讀性和可維護性。

為什么引入組合式 API?

在使用選項式 API 時,組件的邏輯通常分散在不同的選項中(如 data、methods、computed 等)。當組件變得復雜時,相關邏輯可能被拆散,導致代碼難以閱讀和維護。組合式 API 通過允許我們將相關邏輯集中在一起,解決了這一問題。

組合式 API 的核心概念

  1. setup 函數

    setup 是組合式 API 的入口函數。它在組件實例創建之前執行,用于初始化組件的 props、狀態和邏輯。

    <script setup>
    import { ref } from 'vue';// 定義一個響應式變量
    const count = ref(0);// 定義一個方法來更新變量
    function increment() {count.value++;
    }
    </script><template><div><p>當前計數:{{ count }}</p><button @click="increment">增加</button></div>
    </template>
    

    在上述示例中,setup 函數使用 ref 創建了一個響應式變量 count,并定義了一個方法 increment 來更新該變量。

  2. 響應式 API

    組合式 API 提供了 refreactive 等函數來創建響應式狀態:

    • ref:用于創建包含單一值的響應式引用。

      const count = ref(0);
      console.log(count.value); // 輸出: 0
      
    • reactive:用于創建包含多個屬性的響應式對象。

      const user = reactive({name: 'Alice',age: 25
      });
      console.log(user.name); // 輸出: Alice
      
  3. 生命周期鉤子

    在組合式 API 中,生命周期鉤子以函數形式提供,例如 onMountedonUpdatedonUnmounted

    import { onMounted } from 'vue';onMounted(() => {console.log('組件已掛載');
    });
    

組合式 API 的優勢

  • 更好的代碼組織:將相關邏輯集中在一起,提升代碼可讀性。
  • 邏輯復用:通過創建可復用的函數,實現邏輯的共享和復用。
  • TypeScript 支持:組合式 API 對 TypeScript 具有更好的支持,提供了更強的類型推斷和檢查。

總結
組合式 API 為 Vue 開發者提供了一種更靈活、高效的方式來組織和復用代碼。通過掌握組合式 API,你可以更輕松地管理復雜組件的邏輯,提高代碼的可維護性和可讀性。

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

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

相關文章

Selenium配合Cookies實現網頁免登錄

文章目錄 前言1 方案一&#xff1a;使用Chrome用戶數據目錄2 方案二&#xff1a;手動獲取并保存Cookies&#xff0c;后續使用保存的Cookies3 注意事項 前言 在進行使用Selenium進行爬蟲、網頁自動化操作時&#xff0c;登錄往往是一個必須解決的問題&#xff0c;但是Selenium每次…

計算機畢業設計Python+知識圖譜大模型AI醫療問答系統 健康膳食推薦系統 食譜推薦系統 醫療大數據 機器學習 深度學習 人工智能 爬蟲 大數據畢業設計

溫馨提示&#xff1a;文末有 CSDN 平臺官方提供的學長聯系方式的名片&#xff01; 溫馨提示&#xff1a;文末有 CSDN 平臺官方提供的學長聯系方式的名片&#xff01; 溫馨提示&#xff1a;文末有 CSDN 平臺官方提供的學長聯系方式的名片&#xff01; 作者簡介&#xff1a;Java領…

關于el-table翻頁后序號列遞增的組件封裝

需求說明&#xff1a; 項目中經常會用到的一個場景&#xff0c;表格第一列顯示序號&#xff08;1、2、3...&#xff09;&#xff0c;但是在翻頁后要遞增顯示序號&#xff0c;例如10、11、12&#xff08;假設一頁顯示10條數據&#xff09;&#xff0c;針對這種情況&#xff0c;封…

Elasticsearch的索引生命周期管理

目錄 說明零、參考一、ILM的基本概念二、ILM的實踐步驟Elasticsearch ILM策略中的“最小年齡”是如何計算的&#xff1f;如何監控和調整Elasticsearch ILM策略的性能&#xff1f; 1. **監控性能**使用/_cat/thread_pool API基本請求格式請求特定線程池的信息響應內容 2. **調整…

AI大模型開發原理篇-3:詞向量和詞嵌入

簡介 詞向量是用于表示單詞意義的向量&#xff0c; 并且還可以被認為是單詞的特征向量或表示。 將單詞映射到實向量的技術稱為詞嵌入。在實際應用中&#xff0c;詞向量和詞嵌入這兩個重要的NLP術語通常可以互換使用。它們都表示將詞匯表中的單詞映射到固定大小的連續向量空間中…

[內網安全] 內網滲透 - 學習手冊

這是一篇專欄的目錄文檔&#xff0c;方便讀者系統性的學習&#xff0c;筆者后續會持續更新文檔內容。 如果沒有特殊情況的話&#xff0c;大概是一天兩篇的速度。&#xff08;實驗多或者節假日&#xff0c;可能會放緩&#xff09; 筆者也是一邊學習一邊記錄筆記&#xff0c;如果…

【學術會議征稿-第二屆生成式人工智能與信息安全學術會議(GAIIS 2025)】人工智能與信息安全的魅力

重要信息 時間&#xff1a;2025年2月21日-23日 地點&#xff1a;中國杭州 官網&#xff1a;http://www.ic-gaiis.org 簡介 2025年第二屆生成式人工智能與信息安全將于 2025年2月21日-23日在中國杭州舉行。主要圍繞“生成式人工智能與信息安全”的最新研究展開&#xff0c;…

Vscode的AI插件 —— Cline

簡介 vscode的一款AI輔助吃插件&#xff0c;主要用來輔助創建和編輯文件&#xff0c;探索大型項目&#xff0c;使用瀏覽器并執行終端命令&#xff08;需要多個tokens&#xff09;&#xff0c;可以使用模型上下文協議&#xff08;MCP&#xff09;來創建新工具并擴展自己(比較慢…

2024 CVPR Highlight Learning-Feedback

圖像增強 Towards Robust Event-guided Low-Light Image Enhancement: A Large-Scale Real-World Event-Image Dataset and Novel Approach 解決的主要問題是低光照條件下的圖像增強 通過多尺度整體融合分支提取事件和圖像的結構和紋理信息&#xff0c;并引入信噪比&#xff0…

小白一命速通JS中的windowglobal對象

筆者注意到JS中的window對象與global對象經常被混淆&#xff0c;盡管它們在相當一部分使用情況下可以等同&#xff0c;但是本質上仍然存在很多不同&#xff0c;下面是對于兩者的詳細拆解 1. window 對象 定義&#xff1a;window 對象表示 瀏覽器環境中的全局上下文。作用域&am…

機器學習2 (筆記)(樸素貝葉斯,集成學習,KNN和matlab運用)

樸素貝葉斯模型 貝葉斯定理&#xff1a; 常見類型 算法流程 優缺點 集成學習算法 基本原理 常見方法 KNN&#xff08;聚類模型&#xff09; 算法性質&#xff1a; 核心原理&#xff1a; 算法流程 優缺點 matlab中的運用 樸素貝葉斯模型 樸素貝葉斯模型是基于貝葉斯…

HTB:Active[RE-WriteUP]

目錄 連接至HTB服務器并啟動靶機 信息收集 使用rustscan對靶機TCP端口進行開放掃描 將靶機TCP開放端口號提取并保存 使用nmap對靶機TCP開放端口進行腳本、服務掃描 使用nmap對靶機TCP開放端口進行漏洞、系統掃描 使用nmap對靶機常用UDP端口進行開放掃描 使用nmap對靶機…

Git圖形化工具【lazygit】

簡要介紹一下偶然發現的Git圖形化工具——「lazygit」 概述 Lazygit 是一個用 Go 語言編寫的 Git 命令行界面&#xff08;TUI&#xff09;工具&#xff0c;它讓 Git 操作變得更加直觀和高效。 Github地址&#xff1a;https://github.com/jesseduffield/lazygit 主要特點 主要…

58.界面參數傳遞給Command C#例子 WPF例子

界面參數的傳遞&#xff0c;界面參數是如何從前臺傳送到后臺的。 param 參數是從界面傳遞到命令的。這個過程通常涉及以下幾個步驟&#xff1a; 數據綁定&#xff1a;界面元素&#xff08;如按鈕&#xff09;的 Command 屬性綁定到視圖模型中的 RelayCommand 實例。同時&#x…

selenium定位網頁元素

1、概述 在使用 Selenium 進行自動化測試時&#xff0c;定位網頁元素是核心功能之一。Selenium 提供了多種定位方法&#xff0c;每種方法都有其適用場景和特點。以下是通過 id、linkText、partialLinkText、name、tagName、xpath、className 和 cssSelector 定位元素的…

51單片機(STC89C52)開發:點亮一個小燈

軟件安裝&#xff1a; 安裝開發板CH340驅動。 安裝KEILC51開發軟件&#xff1a;C51V901.exe。 下載軟件&#xff1a;PZ-ISP.exe 創建項目&#xff1a; 新建main.c 將main.c加入至項目中&#xff1a; main.c:點亮一個小燈 #include "reg52.h"sbit LED1P2^0; //P2的…

29. C語言 可變參數詳解

本章目錄: 前言可變參數的基本概念可變參數的工作原理如何使用可變參數 示例&#xff1a;計算多個整數的平均值解析&#xff1a; 更復雜的可變參數示例&#xff1a;打印可變數量的字符串解析&#xff1a; 總結 前言 在C語言中&#xff0c;函數參數的數量通常是固定的&#xff…

RoboMaster- RDK X5能量機關實現案例(一)識別

作者&#xff1a;SkyXZ CSDN&#xff1a;https://blog.csdn.net/xiongqi123123 博客園&#xff1a;https://www.cnblogs.com/SkyXZ 在RoboMaster的25賽季&#xff0c;我主要負責了能量機關的視覺方案開發&#xff0c;目前整體算法已經搭建完成&#xff0c;實際方案上我使用的上…

shell腳本批量修改文件名之方法(The Method of Batch Modifying File Names in Shell Scripts)

shell腳本批量修改文件名方法 我們可以使用Shell腳本來實現這個功能。Shell腳本是一種用于自動化任務的編程語言&#xff0c;它可以在Unix/Linux操作系統上運行。在這個腳本中&#xff0c;我們將使用一個for循環來遍歷目標目錄下的所有文件&#xff0c;并使用mv命令將每個文件…

MySQL誤刪數據怎么辦?

文章目錄 1. 從備份恢復數據2. 通過二進制日志恢復數據3. 使用數據恢復工具4. 利用事務回滾恢復數據5. 預防誤刪數據的策略總結 在使用MySQL進行數據管理時&#xff0c;誤刪數據是一個常見且具有高風險的操作。無論是因為操作失誤、系統故障&#xff0c;還是不小心執行了刪除命…