Vue3.0-Ref

一、值類型與引用類型

1.1 定義和說明

在JavaScript中,數據類型可以分為兩類:值類型(或基本數據類型)和引用類型。

值類型(基本數據類型):

  • undefined

  • null

  • boolean

  • number

  • string

  • symbol(ES6 新增)

引用類型:

  • Object

  • Array

  • Function

  • Date

  • RegExp

值類型和引用類型的主要區別在于它們在內存中的存儲方式不同:

1、值類型:存儲在棧內存中,每個變量擁有一個獨立的內存空間,并且存儲的是數據本身。

2、引用類型:存儲在堆內存中,變量存儲的是數據的引用地址,真實的數據存儲在堆內存中。

下面是一個簡單的例子來說明這兩種類型的區別:

// 值類型示例
let a = 10;
let b = a;
b = 20;
console.log(a); // 輸出 10,因為a仍然是10// 引用類型示例
let obj1 = new Object();
obj1.name = 'John';let obj2 = obj1;
obj2.name = 'Jane';console.log(obj1.name); // 輸出 'Jane',因為obj1和obj2指向同一個對象

在上面的例子中,a是一個值類型變量,改變b的值不會影響a。而obj1obj2是引用類型變量,改變obj2的屬性會影響obj1,因為它們引用的是同一個對象實例。?

1.2 區別:

值類型:

1、占用空間固定,保存在棧中(當一個方法執行時,每個方法都會建立自己的內存棧,在這個方法內定義的變量將會逐個放入這塊棧內存里,隨著方法的執行結束,這個方法的內存棧也將自然銷毀了。因此,所有在方法中定義的變量都是放在棧內存中的;棧中存儲的是基礎變量以及一些對象的引用變量,基礎變量的值是存儲在棧中,而引用變量存儲在棧中的是指向堆中的數組或者對象的地址,這就是為何修改引用類型總會影響到其他指向這個地址的引用變量。)

2、保存與復制的是值本身

3、使用typeof檢測數據的類型

4、基本類型數據是值類型

引用類型:

1、占用空間不固定,保存在堆中(當我們在程序中創建一個對象時,這個對象將被保存到運行時數據區中,以便反復利用(因為對象的創建成本通常較大),這個運行時數據區就是堆內存。堆內存中的對象不會隨方法的結束而銷毀,即使方法結束后,這個對象還可能被另一個引用變量所引用(方法的參數傳遞時很常見),則這個對象依然不會被銷毀,只有當一個對象沒有任何引用變量引用它時,系統的垃圾回收機制才會在核實的時候回收它。)

2、保存與復制的是指向對象的一個指針

3、使用instanceof檢測數據類型

4、使用new()方法構造出的對象是引用型

二、ref介紹

在Vue 3.0中,ref是一個函數,用來創建一個響應式的引用對象(reactive reference),可以用來跟蹤單個響應式值。使用ref的主要目的是在組件中保存狀態。

沒有ref的話,你可以直接使用響應式變量,但是在組件外部無法獲取到這個變量的響應式特性。

下面是使用ref的例子:

<template><div>{{ count }}</div><button @click="increment">Increment</button>
</template><script>
import { ref } from 'vue';export default {setup() {const count = ref(0);function increment() {count.value++;}return { count, increment };}
}
</script>

在上面的例子中,count是一個響應式引用對象,通過.value屬性訪問實際的值,并在點擊按鈕時增加計數。如果沒有使用ref(),那么count僅僅是一個普通的JavaScript基本類型,無法保持響應式。

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

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

相關文章

正則表達式和lambda表達式

正則表達式&#xff08;Regular Expressions&#xff09;和Lambda表達式雖然都包含“表達式”一詞&#xff0c;但它們在編程中的作用和用法是完全不同的。讓我們詳細比較一下它們的定義、用途和應用場景&#xff1a; 正則表達式 定義&#xff1a;正則表達式是一種用于匹配文本…

人工智能AI聊天chatgpt系統openai對話創作文言一心源碼APP小程序功能介紹

你提到的是一個集成了多種智能AI創作能力的系統&#xff0c;它結合了OpenAI的ChatGPT、百度的文言一心&#xff08;ERNIE Bot&#xff09;以及可能的微信WeLM&#xff08;或其他類似接口&#xff09;等。這樣的系統確實能夠極大地提高創作效率&#xff0c;并且在各種場景下為用…

Rust Web開發框架actix-web入門案例

概述 在看書的時候&#xff0c;用到了actix-web這個框架的案例。 書里面的版本是1.0&#xff0c;但是我看官網最新都4.4了。 為了抹平這種信息差&#xff0c;所以我決定把官方提供的示例代碼過一遍。 核心代碼 Cargo.toml [package] name "hello" version &q…

VueRouter使用總結

VueRouter 是 Vue.js 的官方路由管理器&#xff0c;用于構建單頁面應用&#xff08;SPA&#xff09;。在使用 VueRouter 時&#xff0c;開發者可以定義路由映射規則&#xff0c;并在 Vue 組件中通過編程式導航或聲明式導航的方式控制頁面的跳轉和展示。以下是 VueRouter 使用的…

隨筆:貝特彈琴

半年前&#xff0c;我買了一架朗朗代言的智能電子琴。所謂智能是指&#xff0c;它配套的手機軟件知道你在按哪個鍵&#xff0c;它還能讓任意按鍵發光。用專業術語說&#xff0c;它的鍵盤具有輸入和輸出功能&#xff0c;和軟件組合起來是一個完整的計算機系統。 隨著軟件練習曲…

使用Postman來調用Salesforce Bulk API 2.0的方法

簡介 Bulk API 2.0 可以支持大量數據增刪改查&#xff0c; 用新版的Dataloader也可以進行訪問&#xff0c;但Dataloader會把CSV里的數據先轉成Bean對象&#xff0c;這樣會耗費大量的時間&#xff0c;而且數據量過大會卡死&#xff0c;所以直接上傳CSV會節省大量時間和避免卡死風…

關于電源1

電源的定義 廣義定義&#xff1a;電源是將其它形式的能轉換成電能的裝置。 例如&#xff1a;發電機&#xff1a;將熱能、水能、風能、核能、光照、震動等轉化為電能的裝置。 電池&#xff1a;將化學能轉換為電能。 狹義定義&#xf…

每天認識新職業——程序員

一、程序員是什么 程序員是從事程序開發、程序維護的基層工作人員。一般將程序員分為程序設計人員和程序編碼人員&#xff0c;但兩者的界限并不非常清楚。隨著互聯網的不斷普及&#xff0c;網絡上把男程序員稱作“程序猿"&#xff0c;女程序員稱作“程序媛"。或統稱…

Java進階11 IO流、功能流

Java進階11 IO流-功能流 一、字符緩沖流 字符緩沖流在源代碼中內置了字符數組&#xff0c;可以提高讀寫效率 1、構造方法 方法說明BufferedReader(new FileReader(文件路徑))對傳入的字符輸入流進行包裝BufferedWriter(new FileWriter(文件路徑))對傳入的字符輸出流進行包裝…

電子商務電商數據采集接口||電子商務市場數據采集方法,你學到了嗎?

小劉從某職業院校電子商務專業畢業后&#xff0c;-直在某品牌電商部負責運營工作&#xff0c;近期&#xff0c;同班同學小王邀請小劉加入創業大軍&#xff0c;共同開設網店&#xff0c;銷售家鄉的螃蟹、鮮蝦、扇貝等生鮮水產。 運營經驗豐富的小劉決定&#xff0c;在創業開始前…

java處理視頻

文章目錄 JCodecXuggle(已被棄用)FFmpegjavacvjave經過調研,目前市面上主流的有以下幾種: JCodec 優勢: 簡單。不提供視頻編輯或錄制功能。缺點: 只能通過File的方式獲取視頻信息,無法通過url方式獲取無法轉為M3U8格式使用: <dependency><groupId>org.jc…

IT工具集項目

網址 https://github.com/CorentinTh/it-tools?tabreadme-ov-file 類似的項目應該有很多&#xff0c;提供各種it人員的小工具

SDN 實現 vxlan隧道

SDN vxlan隧道 官方介紹&#xff1a; VXLAN&#xff08;Virtual eXtensible Local Area Network&#xff0c;虛擬擴展局域網&#xff09;&#xff0c;是由IETF定義的NVO3&#xff08;Network Virtualization over Layer 3&#xff09;標準技術之一&#xff0c;是對傳統VLAN協議…

電子商務員考試題庫(二)

21&#xff0e;物流活動實際上就是我們常說的儲運業。〔〕 22. 電子商務不僅要求物流管理人員既具有較高的物流管理水平&#xff0c;而且也要求物流管理員要具有較 高的電子商務知識&#xff0c;并在實際的動作過程中&#xff0c;能有效地將二者有機地結合在一起。〔 √ 〕 …

環境工程設計專項資質乙級如何升甲級

環境工程設計專項資質乙級升甲級的流程和要求可能因地區和具體規定而有所不同&#xff0c;但一般來說&#xff0c;以下是一些常見的步驟和要求&#xff1a; 前期準備&#xff1a; 資質自查&#xff1a;首先&#xff0c;企業需要確認自身是否已經滿足甲級資質的各項基本條件&…

行業早報5.15

1.宏達電&#xff08;HTC&#xff09;4 月營收新臺幣 1.73 億元&#xff0c;同比減少 42.4%&#xff1b; 2.TCL 實業 2023 年營收突破 1200 億元&#xff0c;同比增長 13%&#xff1b; 3.乘聯會&#xff1a;初步統計 4 月乘用車市場零售 158.5 萬輛&#xff0c;同比下降 2%&…

c語言字符數組的一些操作

獲取數組的實際長度和數組的總長度 #include <getopt.h> #include <stdio.h> #include <stdlib.h>#define MAX_PATH 256 char filename[MAX_PATH 5]; int main(int argc, char** argv) {const char* optarg "xuhaitao";strcpy(filename, op…

中途離開項羽投奔劉邦的那些名將謀臣,最后的結果怎么樣?

劉邦奪取天下后&#xff0c;說&#xff1a;我自己沒什么能力&#xff0c;之所以擊敗項羽&#xff0c;都是大家的功勞。帶兵橫掃強敵&#xff0c;我不如韓信&#xff1b;籌措糧草物資&#xff0c;源遠不斷地給前線供應糧餉&#xff0c;我不如蕭何&#xff1b;坐在帳中&#xff0…

地平線旭日X3開發板編譯USB網卡驅動 AX88772B

由于使用的激光雷達是網口輸出的&#xff0c; 為了不占用X3派已有的網口&#xff0c;接上去了一個綠聯的usb網卡&#xff0c; 發現系統沒有驅動&#xff0c;所以動手看看能不能自己編譯一個 首先lsusb查看一下網卡型號 發現型號是AX88772B&#xff0c;去官網看了一下&#x…

記錄用python跑csdn點贊接口

代碼如下 # 導入request包 import requests # 請求URL URL3https://blog.csdn.net//phoenix/web/v1/article/like # 入參 data3{articleId:109552419} # 請求頭 headers3{cookie:uuid_tt_dd10_30308678820-1713771851124-190368; loginbox_strategy%7B%22taskId%22%3A349%2C%2…