欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

ref

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

直接賦值數(shù)組ref 創(chuàng)建的是一個包含 .value 屬性的對象,這個 .value 屬性持有實(shí)際的數(shù)據(jù)。無論如何改變這個 .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)建一個深度響應(yīng)的對象或數(shù)組。
  • 用法:直接修改響應(yīng)對象或數(shù)組的屬性。
  • 示例
import { reactive } from 'vue'; const state = reactive({ count: 0 }); 
state.count++; // 增加 
count console.log(state.count); // 訪問 count

不能直接賦值數(shù)組reactive 創(chuàng)建的是一個深度響應(yīng)的對象或數(shù)組,Vue 只跟蹤創(chuàng)建時的對象引用。如果直接重新賦值一個新的對象或數(shù)組,Vue 將無法跟蹤新的引用,因?yàn)樾碌囊貌粫蛔詣愚D(zhuǎn)換為響應(yīng)式對象。

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)建一個響應(yīng)式引用。使用 .value 來訪問和修改值??梢灾苯油ㄟ^ .value 重新賦值新的數(shù)組或?qū)ο蟆?/p>

reactive

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

實(shí)際解決方案

使用 reactive 更新數(shù)組時,可以使用 splice 清除并替換元素,這樣保持了對原始響應(yīng)數(shù)組的引用,Vue 會繼續(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 適用于需要頻繁更改整個值的場景,因?yàn)樗梢灾苯淤x值新的數(shù)組或?qū)ο蟆?/p>

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

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

相關(guān)文章

  • Vue插槽原理與用法詳解

    Vue插槽原理與用法詳解

    這篇文章主要介紹了Vue插槽原理與用法,結(jié)合實(shí)例形式詳細(xì)分析了vue.js插槽內(nèi)容、具名插槽、作用域插槽等相關(guān)原理與使用方法,需要的朋友可以參考下
    2019-03-03
  • vue2.x與vue3.x中自定義指令詳解(最新推薦)

    vue2.x與vue3.x中自定義指令詳解(最新推薦)

    vue自定義指令(2.x丨3.x)可以幫助我們實(shí)現(xiàn)需要操作,比如防抖、節(jié)流、懶加載、輸入框自動聚焦等等,使用起來非常方便,比如vue自帶的v-text、v-html、v-show、v-if等等,這篇文章主要介紹了vue2.x與vue3.x中自定義指令詳解,需要的朋友可以參考下
    2022-12-12
  • 如何解決模塊““vue“”沒有導(dǎo)出的成員“ref”問題

    如何解決模塊““vue“”沒有導(dǎo)出的成員“ref”問題

    這篇文章主要介紹了如何解決模塊““vue“”沒有導(dǎo)出的成員“ref”問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • vue動態(tài)設(shè)置路由權(quán)限的主要思路

    vue動態(tài)設(shè)置路由權(quán)限的主要思路

    這篇文章主要給大家介紹了關(guān)于vue動態(tài)設(shè)置路由權(quán)限的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 用了這么久的Vue3你真的了解Proxy了嗎

    用了這么久的Vue3你真的了解Proxy了嗎

    Proxy是ES6引入的一個新特性,它允許你創(chuàng)建一個代理對象,用于攔截對目標(biāo)對象的訪問,但用了這么久的vue3,你真的懂Proxy嗎,本文就來和大家深入聊聊Proxy吧
    2023-06-06
  • Vue3 + MybatisPlus實(shí)現(xiàn)批量刪除功能(詳細(xì)代碼)

    Vue3 + MybatisPlus實(shí)現(xiàn)批量刪除功能(詳細(xì)代碼)

    這篇文章主要介紹了Vue3 + MybatisPlus實(shí)現(xiàn)批量刪除功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-03-03
  • VUE項(xiàng)目中加載已保存的筆記實(shí)例方法

    VUE項(xiàng)目中加載已保存的筆記實(shí)例方法

    在本篇文章里小編給大家整理了一篇關(guān)于VUE項(xiàng)目中加載已保存的筆記實(shí)例方法,有興趣的讀者們可以參考下。
    2019-09-09
  • vue中關(guān)于template報錯等問題的解決

    vue中關(guān)于template報錯等問題的解決

    這篇文章主要介紹了vue中關(guān)于template報錯等問題的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • 如何在Vue中實(shí)現(xiàn)登錄驗(yàn)證功能(代碼示例)

    如何在Vue中實(shí)現(xiàn)登錄驗(yàn)證功能(代碼示例)

    Vue是一種流行的JavaScript框架,可以幫助開發(fā)者建立高效的Web應(yīng)用程序,本文將為您介紹如何在Vue中實(shí)現(xiàn)登錄驗(yàn)證功能,并為您提供具體的代碼示例,感興趣的朋友一起看看吧
    2023-11-11
  • vue框架和react框架的區(qū)別以及各自的應(yīng)用場景使用

    vue框架和react框架的區(qū)別以及各自的應(yīng)用場景使用

    這篇文章主要介紹了vue框架和react框架的區(qū)別以及各自的應(yīng)用場景使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10

最新評論