ref 和 reactive

文章目錄

    • ref 和 reactive
      • 一、差異
      • 二、能否替代的場景分析
        • (1)基本類型數據
        • (2)對象類型數據
        • (3)數組類型數據
        • (4) 需要整體替換的場景
      • 三、替代方案與兼容寫法
        • 1. 用 reactive 模擬 ref
        • 2. 用 ref 模擬 reactive
      • 四、最佳實踐建議
      • 五、性能對比
      • 六 結論:

ref 和 reactive

一、差異

在這里插入圖片描述

特性refreactive
適用類型任意類型(包括基本類型)僅對象/數組
訪問對象需要通過 .value直接訪問屬性
整體替換?支持(直接賦值)?不支持(需要特殊處理)
解構保持相應性?需要配合 toRef?需要配合 toRef
性能開銷較低(僅包裝一層)較高(深度代理)

二、能否替代的場景分析

(1)基本類型數據
// ? 必須用 ref
const count = ref(0); // 正確
const count = reactive(0); // ? 錯誤(reactive 只能處理對象)
(2)對象類型數據
// ? 可以用 reactive 替代 ref
const objRef = ref({ a: 1 });
const objReactive = reactive({ a: 1 });// 訪問方式差異
console.log(objRef.value.a); // ref 需要 .value
console.log(objReactive.a);  // reactive 直接訪問
(3)數組類型數據
// ? 可以用 reactive 替代 ref
const arrRef = ref([1, 2, 3]);
const arrReactive = reactive([1, 2, 3]);// 修改操作差異
arrRef.value.push(4);   // ref 需要 .value
arrReactive.push(4);    // reactive 直接操作
(4) 需要整體替換的場景
// ? 必須用 ref
const state = ref({ a: 1 });
state.value = { a: 2 }; // ? 正確// ? reactive 無法直接替換
const state = reactive({ a: 1 });
state = { a: 2 }; // ? 錯誤(失去響應性) 

三、替代方案與兼容寫法

1. 用 reactive 模擬 ref
// 通過 reactive 包裝單屬性對象
const count = reactive({ value: 0 });
console.log(count.value); // 訪問方式與 ref 一致
2. 用 ref 模擬 reactive
// 通過 ref 包裝對象
const obj = ref({ a: 1 });
console.log(obj.value.a); // 訪問時需要 .value

四、最佳實踐建議

  1. 基本類型 → 必須用 ref
  2. 對象/數組 → 優先用 reactive(除非需要整體替換)
  3. 復雜數據結構 → 混合使用:
const state = reactive({count: ref(0),       // 嵌套 refuser: reactive({     // 嵌套 reactivename: 'Alice'})
});
  1. 模板中使用 → 優先用 reactive(避免頻繁 .value)

五、性能對比

操作refreactive
創建響應式對象?快??慢
屬性訪問???快??快
數組修改??中???快
整體替換???快?不支持

六 結論:

不能簡單用 reactive 完全替代 ref,但可以根據數據類型和使用場景選擇:

  • 基本類型 → 必須用 ref
  • 對象/數組 → 優先用 reactive
  • 需要整體替換 → 必須用 ref
  • 模板中直接訪問 → 優先用 reactive(減少 .value 噪音)

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

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

相關文章

BatchNorm 與 LayerNorm:原理、實現與應用對比

BatchNorm 與 LayerNorm:原理、實現與應用對比 Batch Normalization (批歸一化) 和 Layer Normalization (層歸一化) 是深度學習中兩種核心的歸一化技術,它們解決了神經網絡訓練中的內部協變量偏移問題,大幅提升了模型訓練的穩定性和收斂速度…

OcsNG基于debian一鍵部署腳本

🤔 為什么有了GLPI還要部署OCS-NG? 核心問題:數據收集的風險 GLPI直接收集的問題: Agent直接向GLPI報告數據時,任何收集異常都會直接影響資產數據庫網絡問題、Agent故障可能導致重復資產、錯誤數據、資產丟失無法對收集…

001_Claude開發者指南介紹

Claude開發者指南介紹 目錄 Claude簡介Claude 4 模型開始使用核心功能支持資源 Claude簡介 Claude 是由 Anthropic 構建的高性能、可信賴和智能的 AI 平臺。Claude 具備出色的語言、推理、分析和編程能力,可以幫助您解決各種復雜任務。 想要與 Claude 聊天嗎&a…

004_Claude功能特性與API使用

Claude功能特性與API使用 目錄 API 基礎使用核心功能特性高級功能開發工具平臺支持 API 基礎使用 快速開始 通過 Anthropic Console 獲取 API 訪問權限: 在 console.anthropic.com/account/keys 生成 API 密鑰使用 Workbench 在瀏覽器中測試 API 認證方式 H…

ReAct論文解讀(1)—什么是ReAct?

什么是ReAct? 在大語言模型(LLM)領域中,ReAct 指的是一種結合了推理(Reasoning) 和行動(Acting) 的提示方法,全稱是 “ReAct: Synergizing Reasoning and Acting in Lan…

【云服務器安全相關】服務器防火墻常見系統日志信息說明

目錄? 一、防火墻日志是做什么的?🛠? 二、常見防火墻日志信息及說明🧪 三、典型日志示例解析1. 被阻斷的訪問(DROP)2. 被允許的訪問(ACCEPT)3. 被拒絕的端口訪問4. 可疑端口掃描行為&#x1f…

011_視覺能力與圖像處理

視覺能力與圖像處理 目錄 視覺能力概述支持的圖像格式圖像上傳方式使用限制最佳實踐應用場景API使用示例視覺能力概述 多模態交互 Claude 3 系列模型具備強大的視覺理解能力,可以分析和理解圖像內容,實現真正的多模態AI交互。這種能力使Claude能夠: 圖像內容分析:理解圖…

ansible自動化部署考試系統前后端分離項目

1. ?ansible編寫劇本步驟1??創建roles目錄結構2??在group_vars/all/main.yml中定義變量列表3??在tasks目錄下編寫tasks任務4??在files目錄下準備部署文件5??在templates目錄下創建j2模板文件6??在handlers目錄下編寫handlers7??在roles目錄下編寫主playbook8??…

【AI論文】GLM-4.1V-Thinking:邁向具備可擴展強化學習的通用多模態推理

摘要:我們推出GLM-4.1V-Thinking,這是一款旨在推動通用多模態推理發展的視覺語言模型(VLM)。在本報告中,我們分享了在以推理為核心的訓練框架開發過程中的關鍵發現。我們首先通過大規模預訓練開發了一個具備顯著潛力的…

Linux進程通信——匿名管道

目錄 1、進程間通信基礎概念 2、管道的工作原理 2.1 什么是管道文件 3、匿名管道的創建與使用 3.1、pipe 系統調用 3.2 父進程調用 fork() 創建子進程 3.3. 父子進程的文件描述符共享 3.4. 關閉不必要的文件描述符 3.5 父子進程通過管道進行通信 父子進程通信的具體例…

sql:sql在office中的應用有哪些?

在Office軟件套件中,主要是Access和Excel會用到SQL(結構化查詢語言),以下是它們在這兩款軟件中的具體應用: 在Access中的應用 創建和管理數據庫對象: 創建表:使用CREATE TABLE語句可以創建新的數…

零基礎完全理解視覺語言模型(VLM):從理論到代碼實踐

本文是《從LLM到VLM:視覺語言模型的核心技術與Python實現》的姊妹篇,主要面向零基礎的讀者,希望用更通俗易懂的語言帶領大家入門VLM。本教程的完整代碼可以在GitHub上找到,如果你有任何問題或建議,歡迎交流討論。 寫在…

數據結構 Map和Set

文章目錄📕1. 二叉搜索樹??1.1 查找操作??1.2 插入操作??1.3 刪除操作📕2. Map的使用??2.1 Map的常用方法??2.2 TreeMap和HashMap的區別??2.3 HashMap的底層實現📕3. Set的使用??3.1 Set的常用方法??3.2 TreeSet和HashSet的區…

樹莓派5-系統 Debian 12 開啟VNC遠程訪問踩坑記錄

簡單記錄一下踩坑,安裝vnc遠程訪問服務并設置開機自啟1.查看系統版本,我這里的系統版本是 12cat /etc/os-release2.安裝VNC服務sudo apt install realvnc-vnc-server realvnc-vnc-viewer -y3.創建服務單元文件:sudo nano /etc/systemd/system…

TASK2 夏令營:用AI做帶貨視頻評論分析

TASK2 夏令營:用AI做帶貨視頻評論分析**電商評論洞察賽題:從Baseline到LLM進階優化學習筆記**一、 賽題核心解讀1.1. 任務鏈條與目標1.2. 關鍵挑戰與評分機制二、 Baseline方案回顧與瓶頸分析2.1. Baseline技術棧2.2. 核心瓶頸三、 進階優化策略&#xf…

Docker:安裝命令筆記

目錄 零、安裝:略 一、鏡像 1.0、獲取鏡像: 1.1、查看鏡像: 1.2、刪除鏡像: 二、容器 2.0、創建并啟動容器 2.1、tomcat和jdk9的“創建并啟動容器”的命令 2.2、容器操作 2.3、容器日志操作 零、安裝:略 略 …

Python七彩花朵

系列文章 序號直達鏈接Tkinter1Python李峋同款可寫字版跳動的愛心2Python跳動的雙愛心3Python藍色跳動的愛心4Python動漫煙花5Python粒子煙花Turtle1Python滿屏飄字2Python藍色流星雨3Python金色流星雨4Python漂浮愛心5Python愛心光波①6Python愛心光波②7Python滿天繁星8Pytho…

【保姆級圖文詳解】MCP架構(客戶端-服務端)、三種方式使用MCP服務、Spring AI MCP客戶端和服務端開發、MCP部署方案、MCP安全性

文章目錄前言一、MCP(model context protocol)1.1、概念描述1.2、MCP作用與意義1.3、MCP架構二、使用MCP(model context protocol)2.1、云平臺使用MCP2.2、軟件客戶端使用MCP2.3、Spring AI程序中使用MCP三、Spring AI MCP(model context protocol)開發過程3.1、MCP服務端開發3…

Linux的 iproute2 配置:以太網(Ethernet)、綁定(Bond)、虛擬局域網(VLAN)、網橋(Bridge)筆記250713

Linux的 iproute2 配置:以太網(Ethernet)、綁定(Bond)、虛擬局域網(VLAN)、網橋(Bridge)筆記250713 在 Linux 中使用 iproute2 工具集配置網絡是現代且推薦的方法,它取代了舊的 ifconfig、route、brctl、vconfig 等命令。iproute2 提供了統一的接口 ip …

當信任上鏈解碼區塊鏈溯源系統開發邏輯與產業變革

當信任上鏈:解碼區塊鏈溯源系統的開發邏輯與產業變革在上海某高端超市的進口水果區,消費者王女士拿起一盒車厘子,用手機掃描包裝上的二維碼,屏幕立刻彈出一串動態信息:智利瓦爾帕萊索港口的裝船時間、海關清關的具體日…