国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Vue3中reactive響應(yīng)式失效的問題

這篇具有很好參考價值的文章主要介紹了Vue3中reactive響應(yīng)式失效的問題。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

情景闡述

彈窗內(nèi)部有一個挑選框,要通過請求接口獲取挑選框下面可供選擇的數(shù)據(jù)。

這是一個很簡單的情境,我立刻有了自己的思路。如果實現(xiàn)搜索,數(shù)據(jù)較少可以直接用elementplus自帶的filter。如果數(shù)據(jù)較多,就需要傳val,在后臺進(jìn)行搜索,然后分頁渲染。我選擇的是前者,所以只需要把數(shù)據(jù)渲染上去就可以。

我的做法也很標(biāo)準(zhǔn),我定義了一個option,因為獲取的一定是個數(shù)組類型的數(shù)據(jù),里面會有對象,對象中的屬性是label。就類似于這種:

const pingminOptions = reactive([
	{
		value: '',
		label: ''
	}
])

做好一切準(zhǔn)備工作后,我就請求后端接口,拿到了一個新的數(shù)組。并把數(shù)組的值賦值給了pingminOptiions。

隨后發(fā)現(xiàn)響應(yīng)式出現(xiàn)問題,數(shù)據(jù)更改成功,但是沒有辦法實現(xiàn)在頁面上渲染。(數(shù)據(jù)的單向綁定出現(xiàn)問題)

發(fā)現(xiàn)問題的過程

我和我的組長一起改了很久,因為前面的人的代碼很亂,一開始都是用let來定義,所以看不出問題。但是一旦是const就出現(xiàn)報錯。

const報錯,說明這個引用型數(shù)據(jù)的存放位置都發(fā)生了變化。

前面我們定義了一個響應(yīng)式數(shù)據(jù)pingminOptions,如果我們獲取到的是data.records。那么:

pingminOptions = data.records

這樣的做法,會導(dǎo)致數(shù)據(jù)存放位置發(fā)生變化,而且原先的data.records并不是一個響應(yīng)式數(shù)據(jù),所以新定義的pingminOptions的響應(yīng)式也失效了。

正確做法

正確的做法,我們可以給pingmingOptions中:

const pingmingOptions = {
	option: []
}

定義一個option來存放數(shù)據(jù)。接著我們就可以把data.records的值給option。

為什么要這么做?

這么做的原因是,用reactive定義出來的數(shù)據(jù),內(nèi)部的對象或者數(shù)組也是響應(yīng)式的,它是深層次的。所以我們不用擔(dān)心pingmingOptions的響應(yīng)式失效問題。

關(guān)于toRefs

在和組長交流的過程中,我們也曾一度考慮是不是沒有用到toRefs的問題,于是也復(fù)習(xí)了toRefs。toRefs的作用,一般用于解構(gòu)。

比如我的state對象中有很多數(shù)據(jù),有state.a,state.b,state.c。

我在渲染頁面的時候,每次都要帶上state。非常的不方便。因此就可以toRefs(state),這樣的話,相當(dāng)于給a,b,c都變成了一個響應(yīng)式的屬性。那么我們在使用的時候,模板語法中可以直接把a,b,c寫出來。這樣就方便了書寫。

需要注意的是,僅僅是在頁面渲染的時候才能簡寫。文章來源地址http://www.zghlxwxcb.cn/news/detail-684227.html

到了這里,關(guān)于Vue3中reactive響應(yīng)式失效的問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 解決在vue3中使用reactive響應(yīng)式,賦值后造成頁面不改變的問題?

    解決在vue3中使用reactive響應(yīng)式,賦值后造成頁面不改變的問題?

    我們需要在vue3中使用服務(wù)器的數(shù)據(jù)渲染到頁面上,我使用的是reactive生成的響應(yīng)式數(shù)據(jù)屬性,但是在掛載后請求的數(shù)據(jù)并沒有渲染顯示到頁面上。 技術(shù): vue3 、 element-ui-plus home.vue 我們通過直接賦值,可以看出數(shù)據(jù)變?yōu)槠胀ǖ臄?shù)據(jù)了,并不是響應(yīng)式的。 代碼如下: 可以看出

    2023年04月26日
    瀏覽(25)
  • 【vue3】優(yōu)雅的解決reactive()響應(yīng)式對象初始化重新賦值問題v2

    關(guān)聯(lián)的上篇文章: 【vue3】優(yōu)雅的解決reactive()響應(yīng)式對象初始化重新賦值問題_vue3 reactive重新賦值_oumae-kumiko的博客-CSDN博客 在上面該文章提到了reactive該api的不方便之處和相關(guān)重置數(shù)據(jù)方法的解析。下面提供的方法就是自己封裝的`$reactive`方法,通過該方法返回響應(yīng)式數(shù)據(jù)和重

    2024年02月15日
    瀏覽(23)
  • vue3-響應(yīng)式基礎(chǔ)之reactive

    vue3-響應(yīng)式基礎(chǔ)之reactive

    reactive() 還有另一種聲明響應(yīng)式狀態(tài)的方式,即使用 reactive() API。與將內(nèi)部值包裝在特殊對象中的 ref 不同,reactive() 將使對象本身具有響應(yīng)性: 「點擊按鈕+1」 「示例效果」 響應(yīng)式對象是 JavaScript 代理,其行為就和普通對象一樣。不同的是,Vue 能夠攔截對響應(yīng)式對象所有屬

    2024年01月16日
    瀏覽(31)
  • 【Vue3響應(yīng)式入門#01】Reactivity

    【Vue3響應(yīng)式入門#01】Reactivity

    專欄分享:vue2源碼專欄,vue3源碼專欄,vue router源碼專欄,玩具項目專欄,硬核??推薦?? 歡迎各位ITer關(guān)注點贊收藏?????? 以下是柏成根據(jù)Vue3官方課程整理的響應(yīng)式書面文檔 - 第一節(jié),課程鏈接在此:Vue 3 Reactivity - Vue 3 Reactivity | Vue Mastery,本文檔可作為課程的輔助材料,

    2024年02月08日
    瀏覽(57)
  • 【Vue3響應(yīng)式原理#01】Reactivity

    【Vue3響應(yīng)式原理#01】Reactivity

    專欄分享:vue2源碼專欄,vue3源碼專欄,vue router源碼專欄,玩具項目專欄,硬核??推薦?? 歡迎各位ITer關(guān)注點贊收藏?????? 以下是柏成根據(jù)Vue3官方課程整理的響應(yīng)式書面文檔 - 第一節(jié),課程鏈接在此:Vue 3 Reactivity - Vue 3 Reactivity | Vue Mastery,本文檔可作為課程的輔助材料,

    2024年02月08日
    瀏覽(17)
  • vue3使用響應(yīng)式數(shù)據(jù) + v-model導(dǎo)致響應(yīng)式失效el-form表單無法輸入的問題

    參考文章 重構(gòu)vue2項目時發(fā)現(xiàn)的問題,原始項目使用的是 Element-ui 。 其實vue3可以使用適配的 Element-plus 問題描述 el-form表單無法輸入 控制臺報錯 Avoid adding reactive properties to a Vue instance or its root $data at runtime - declare it upfront in the data option. 使用響應(yīng)式變量時應(yīng)先聲明 解決辦法

    2024年02月15日
    瀏覽(21)
  • 前端Vue篇之Vue3響應(yīng)式:Ref和Reactive

    在Vue3中,響應(yīng)式編程是非常重要的概念,其中 Ref 和 Reactive 是兩個關(guān)鍵的API。 Ref : Ref 用于創(chuàng)建一個響應(yīng)式的基本數(shù)據(jù)類型,比如數(shù)字、字符串等。它將普通的數(shù)據(jù)變成響應(yīng)式數(shù)據(jù),可以監(jiān)聽數(shù)據(jù)的變化。使用 Ref 時,我們可以通過 .value 來訪問和修改數(shù)據(jù)的值。 Reactive :

    2024年04月25日
    瀏覽(25)
  • vue3 reactive包裹數(shù)組無法頁面無法響應(yīng)式

    原代碼如下: 此時removeItem方法運行,打印出historyAccount的值確實被改變了,但是頁面還是沒有變化 原因: 如果你直接通過賦值的方式改變 reactive 對象引用的數(shù)組,是不會觸發(fā)視圖的更新的,應(yīng)該使用 Vue 提供的響應(yīng)式方法來更新響應(yīng)式數(shù)據(jù)。 ?改進(jìn):可以利用splice方法刪除

    2024年04月09日
    瀏覽(32)
  • 【Vue3】使用ref與reactive創(chuàng)建響應(yīng)式對象

    【Vue3】使用ref與reactive創(chuàng)建響應(yīng)式對象

    ??????歡迎來到我的博客,你將找到有關(guān)如何使用技術(shù)解決問題的文章,也會找到某個技術(shù)的學(xué)習(xí)路線。無論你是何種職業(yè),我都希望我的博客對你有所幫助。最后不要忘記訂閱我的博客以獲取最新文章,也歡迎在文章下方留下你的評論和反饋。我期待著與你分享知識、互

    2024年02月21日
    瀏覽(23)
  • Vue3通透教程【五】Vue3中的響應(yīng)式數(shù)據(jù) reactive函數(shù)、ref函數(shù)

    專欄介紹: 涼哥作為 Vue 的忠實粉絲輸出過大量的 Vue 文章,應(yīng)粉絲要求開始更新 Vue3 的相關(guān)技術(shù)文章,Vue 框架目前的地位大家應(yīng)該都曉得,所謂三大框架使用人數(shù)最多,公司選型最多的框架,涼哥之前在文章中也提到過就是 Vue 框架之所以火起來的原因,和 Vue 框架相比其他

    2024年01月24日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包