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

Vue3中reactive響應(yīng)式失效的解決方案

 更新時間:2023年08月29日 09:31:17   作者:巧克力小貓猿  
這篇文章主要給大家分享Vue3中reactive響應(yīng)式失效的問題的解決方法,文中有詳細的解決方案供大家參考,如果又遇到一樣問題的同學(xué),可以借鑒閱讀本文

情景闡述

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

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

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

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

做好一切準備工作后,我就請求后端接口,拿到了一個新的數(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)式的,它是深層次的。所以我們不用擔心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),這樣的話,相當于給a,b,c都變成了一個響應(yīng)式的屬性。那么我們在使用的時候,模板語法中可以直接把a,b,c寫出來。這樣就方便了書寫。

需要注意的是,僅僅是在頁面渲染的時候才能簡寫。

到此這篇關(guān)于Vue3中reactive響應(yīng)式失效的解決方案的文章就介紹到這了,更多相關(guān)Vue3 reactive響應(yīng)式失效內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue2.x雙向數(shù)據(jù)綁定原理解析

    vue2.x雙向數(shù)據(jù)綁定原理解析

    雙向數(shù)據(jù)綁定原理主要運用了發(fā)布訂閱模式來實現(xiàn)的,通過Object.defineProperty對數(shù)據(jù)劫持,觸發(fā)getter,setter方法,這篇文章主要介紹了vue2.x雙向數(shù)據(jù)綁定原理,需要的朋友可以參考下
    2023-02-02
  • vue+elementUI-el-table實現(xiàn)動態(tài)顯示隱藏列方式

    vue+elementUI-el-table實現(xiàn)動態(tài)顯示隱藏列方式

    這篇文章主要介紹了vue+elementUI-el-table實現(xiàn)動態(tài)顯示隱藏列方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 使用vNode實現(xiàn)給列表字段打標簽

    使用vNode實現(xiàn)給列表字段打標簽

    這篇文章主要為大家介紹了使用vNode實現(xiàn)給列表字段打標簽示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • 編寫v-for循環(huán)的技巧匯總

    編寫v-for循環(huán)的技巧匯總

    這篇文章主要介紹了編寫更好的v-for循環(huán)的6種技巧,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下
    2020-12-12
  • vue 實現(xiàn)邊輸入邊搜索功能的實例講解

    vue 實現(xiàn)邊輸入邊搜索功能的實例講解

    今天小編就為大家分享一篇vue 實現(xiàn)邊輸入邊搜索功能的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • Vue腳手架配置代理服務(wù)器的兩種方式(小結(jié))

    Vue腳手架配置代理服務(wù)器的兩種方式(小結(jié))

    本文主要介紹了Vue腳手架配置代理服務(wù)器的兩種方式(小結(jié)),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • element自定義表單驗證上傳身份證正反面的實現(xiàn)

    element自定義表單驗證上傳身份證正反面的實現(xiàn)

    表單驗證在很多地方都可以用的到,本文主要介紹了element自定義表單驗證上傳身份證正反面的實現(xiàn),文中根據(jù)實例編碼詳細介紹的十分詳盡,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • vue3解決跨域問題詳細代碼親測有效

    vue3解決跨域問題詳細代碼親測有效

    跨域,跨的是不同域,也就是協(xié)議或主機或或端口號不同造成的現(xiàn)象,本文給大家分享vue3解決跨域問題詳細代碼親測有效,感興趣的朋友跟隨小編一起看看吧
    2022-11-11
  • Vue3中使用vuedraggable拖拽實戰(zhàn)教程

    Vue3中使用vuedraggable拖拽實戰(zhàn)教程

    這篇文章主要介紹了Vue3中使用vuedraggable拖拽實戰(zhàn)教程,文中通過示例介紹了vue3拖拽組件vuedraggable的使用demo,需要的朋友可以參考下
    2023-06-06
  • 詳解vue?Router(v3.x)?路由傳參的三種方式

    詳解vue?Router(v3.x)?路由傳參的三種方式

    vue路由傳參的使用場景一般都是應(yīng)用在父路由跳轉(zhuǎn)到子路由時,攜帶參數(shù)跳轉(zhuǎn),本文將詳細介紹vue路由傳參的三種方式,這三種傳參方式只是針對vue?Router?V3版本的,需要的朋友可以參考下
    2023-07-07

最新評論

崇义县| 民和| 萨嘎县| 鹤庆县| 安仁县| 丹凤县| 金华市| 军事| 龙川县| 延庆县| 保靖县| 咸阳市| 莆田市| 金寨县| 焦作市| 陈巴尔虎旗| 盈江县| 曲阳县| 沾益县| 成安县| 武城县| 拉萨市| 夏津县| 潮州市| 合江县| 临江市| 容城县| 阿拉尔市| 辽阳县| 漳浦县| 五峰| 特克斯县| 沾化县| 林周县| 杭锦后旗| 夹江县| 锡林郭勒盟| 永兴县| 永州市| 长岭县| 沁阳市|