最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue.js 中 ref 和 reactive 的區(qū)別及用法解析

 更新時(shí)間:2024年09月19日 09:59:32   作者:陳小唬  
在Vue.js中,ref主要用于創(chuàng)建響應(yīng)式的引用,通過.value屬性來訪問和修改值,特別適用于需要頻繁更改整個(gè)值的場景,而reactive則用于創(chuàng)建深度響應(yīng)的對(duì)象或數(shù)組,本文給大家介紹Vue.js 中 ref 和 reactive 的區(qū)別及用法,感興趣的朋友跟隨小編一起看看吧

Vue.js 中 refreactive 的區(qū)別及用法

ref

  • 目的:創(chuàng)建一個(gè)對(duì)值的響應(yīng)式引用。
  • 用法:通過 .value 屬性來訪問和修改值。
  • 示例
import { ref } from 'vue';
const count = ref(0);
count.value++;  // 增加值
console.log(count.value);  // 訪問值

直接賦值數(shù)組ref 創(chuàng)建的是一個(gè)包含 .value 屬性的對(duì)象,這個(gè) .value 屬性持有實(shí)際的數(shù)據(jù)。無論如何改變這個(gè) .value 的內(nèi)容,Vue 都能檢測到變化并進(jìn)行更新。

import { ref } from 'vue';
const city1List = ref([]);
onMounted(() => {
  getCityByPid(0).then(res => {
    city1List.value = res.data.data;  // 直接賦值新數(shù)組
    console.log(city1List.value);  // 訪問數(shù)組內(nèi)容
  });
});

reactive

  • 目的:創(chuàng)建一個(gè)深度響應(yīng)的對(duì)象或數(shù)組。
  • 用法:直接修改響應(yīng)對(duì)象或數(shù)組的屬性。
  • 示例
import { reactive } from 'vue'; const state = reactive({ count: 0 }); 
state.count++; // 增加 
count console.log(state.count); // 訪問 count

不能直接賦值數(shù)組reactive 創(chuàng)建的是一個(gè)深度響應(yīng)的對(duì)象或數(shù)組,Vue 只跟蹤創(chuàng)建時(shí)的對(duì)象引用。如果直接重新賦值一個(gè)新的對(duì)象或數(shù)組,Vue 將無法跟蹤新的引用,因?yàn)樾碌囊貌粫?huì)被自動(dòng)轉(zhuǎn)換為響應(yīng)式對(duì)象。

import { reactive } from 'vue';
let city1List = reactive([]); 
onMounted(() => { 
getCityByPid(0).then(res => 
     { city1List.splice(0, city1List.length, ...res.data.data); // 使用數(shù)組方法修改內(nèi)容 
     console.log(city1List); // 訪問數(shù)組內(nèi)容 
   }); 
);

關(guān)鍵區(qū)別和最佳實(shí)踐

ref

創(chuàng)建一個(gè)響應(yīng)式引用。使用 .value 來訪問和修改值??梢灾苯油ㄟ^ .value 重新賦值新的數(shù)組或?qū)ο蟆?/p>

reactive

  • 創(chuàng)建一個(gè)深度響應(yīng)的對(duì)象或數(shù)組。
  • 直接修改對(duì)象或數(shù)組的屬性或元素。
  • 不能直接重新賦值整個(gè)對(duì)象或數(shù)組,而需要修改其內(nèi)部的屬性或元素。

實(shí)際解決方案

使用 reactive 更新數(shù)組時(shí),可以使用 splice 清除并替換元素,這樣保持了對(duì)原始響應(yīng)數(shù)組的引用,Vue 會(huì)繼續(xù)跟蹤其內(nèi)容的變化。

import { reactive } from 'vue';
let city1List = reactive([]);
onMounted(() => {
  getCityByPid(0).then(res => {
    city1List.splice(0, city1List.length, ...res.data.data);  // 清除現(xiàn)有數(shù)組并添加新項(xiàng)目
    console.log(city1List);  // 訪問數(shù)組內(nèi)容
  });
});

總結(jié)

ref 適用于需要頻繁更改整個(gè)值的場景,因?yàn)樗梢灾苯淤x值新的數(shù)組或?qū)ο蟆?/p>

reactive 適用于需要深度響應(yīng)的對(duì)象或數(shù)組,在修改其內(nèi)部屬性或元素時(shí)能保持響應(yīng)性。

到此這篇關(guān)于Vue.js 中 ref 和 reactive 的區(qū)別及用法的文章就介紹到這了,更多相關(guān)Vue.js ref 和 reactive用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue3實(shí)現(xiàn)長列表虛擬滾動(dòng)的示例代碼

    vue3實(shí)現(xiàn)長列表虛擬滾動(dòng)的示例代碼

    本文主要介紹了vue3實(shí)現(xiàn)長列表虛擬滾動(dòng)的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • vue3中?provide?和?inject?用法小結(jié)

    vue3中?provide?和?inject?用法小結(jié)

    父子組件傳遞數(shù)據(jù)時(shí),使用的是props和emit,父傳子時(shí),使用的是?props,如果是父組件傳孫組件時(shí),就需要先傳給子組件,子組件再傳給孫組件,如果多個(gè)子組件或多個(gè)孫組件使用時(shí),就需要傳很多次,會(huì)很麻煩,這篇文章主要介紹了vue3中?provide?和?inject?用法,需要的朋友可以參考下
    2023-11-11
  • vue element upload組件 file-list的動(dòng)態(tài)綁定實(shí)現(xiàn)

    vue element upload組件 file-list的動(dòng)態(tài)綁定實(shí)現(xiàn)

    這篇文章主要介紹了vue element upload組件 file-list的動(dòng)態(tài)綁定實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Django與Vue語法的沖突問題完美解決方法

    Django與Vue語法的沖突問題完美解決方法

    這篇文章主要介紹了Django與Vue語法的沖突問題完美解決方法,本文給大家分享了兩種解決方法,需要的朋友參考下吧
    2017-12-12
  • Vue中的父子組件傳值及傳方法

    Vue中的父子組件傳值及傳方法

    這篇文章主要介紹了Vue中的父子組件傳值及傳方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • vue組件jsx語法的具體使用

    vue組件jsx語法的具體使用

    本篇文章主要介紹了vue組件jsx語法的具體使用,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05
  • Vue2與Vue3兄弟組件通訊bus的區(qū)別及用法

    Vue2與Vue3兄弟組件通訊bus的區(qū)別及用法

    這篇文章主要介紹了Vue2與Vue3兄弟組件通訊bus的區(qū)別及用法,有需要的朋友可以借鑒參考下,希望可以有所幫助,祝大家多多進(jìn)步早日升職加薪
    2021-09-09
  • vue移動(dòng)端設(shè)置全屏背景的項(xiàng)目實(shí)踐

    vue移動(dòng)端設(shè)置全屏背景的項(xiàng)目實(shí)踐

    本vue移動(dòng)端項(xiàng)目設(shè)置全屏背景,關(guān)鍵是要找對(duì)文件,然后添加background屬性即可,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • 基于vue實(shí)現(xiàn)swipe分頁組件實(shí)例

    基于vue實(shí)現(xiàn)swipe分頁組件實(shí)例

    本篇文章主要介紹了基于vue實(shí)現(xiàn)swipe分頁組件實(shí)例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • Vue?import?from省略后綴/加載文件夾的方法/實(shí)例詳解

    Vue?import?from省略后綴/加載文件夾的方法/實(shí)例詳解

    本文介紹Vue在import時(shí)省略后綴以及import文件夾的方法,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08

最新評(píng)論

马边| 泽州县| 丰顺县| 安塞县| 北流市| 通化县| 手游| 颍上县| 八宿县| 唐山市| 文昌市| 讷河市| 肥东县| 隆尧县| 铜陵市| 电白县| 舞钢市| 武鸣县| 华亭县| 始兴县| 河东区| 宁晋县| 桐庐县| 和静县| 大关县| 徐水县| 灵台县| 塔河县| 巩留县| 西畴县| 北安市| 孟州市| 老河口市| 马山县| 两当县| 长海县| 鄂州市| 上虞市| 新闻| 松阳县| 佛坪县|