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

vue3中的reactive函數(shù)聲明數(shù)組方式

 更新時(shí)間:2022年05月25日 09:05:42   作者:DanceDonkey  
這篇文章主要介紹了vue3中的reactive函數(shù)聲明數(shù)組方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

reacitve函數(shù)如何聲明一個(gè)響應(yīng)式數(shù)組

如以下案例

<template>
? <div>
? ? ? <div v-for="item in arr" :key="item">?
? ? ? ? ? {{item}}
? ? ? </div>
? ? ? ? <button @click="change">change</button>
? </div>
</template>
<script>
? import { defineComponent, reactive,ref } from 'vue';
? export default defineComponent({
? ? setup(props,context) {
? ? ? let arr = reactive([])
? ? ? function change(){
? ? ? ? console.log("change...");
? ? ? ? let newArr = [1,2,3]
? ? ? ? arr = newArr
? ? ? }
? ? ??
? ? ? return{
? ? ? ? arr,
? ? ? ? change
? ? ? }
? ? },
? });
</script>
<style scope></style>

點(diǎn)擊change按鈕,發(fā)現(xiàn)并沒有什么變化,這是因?yàn)閍rr = newArr這行代碼讓arr失去了響應(yīng)式。

解決辦法

使用ref函數(shù) 

?setup(props,context) {
? ? ? let arr = ref([])
? ? ? function change(){
? ? ? ? console.log("change...");
? ? ? ? let newArr = [1,2,3]
? ? ? ? arr.value = newArr
? ? ? }
? ? ??
? ? ? return{
? ? ? ? arr,
? ? ? ? change
? ? ? }
? ? },

使用數(shù)組的push方法 

?setup(props,context) {
? ? ? let arr = reactive([])
? ? ? function change(){
? ? ? ? console.log("change...");
? ? ? ? let newArr = [1,2,3]
? ? ? ? arr.push(...newArr)
? ? ? }
? ? ??
? ? ? return{
? ? ? ? arr,
? ? ? ? change
? ? ? }
? ? },

創(chuàng)建一個(gè)響應(yīng)式對象,對象的屬性是數(shù)組

<template>
? <div>
? ? ? <div v-for="item in arr.list" :key="item">?
? ? ? ? ? {{item}}
? ? ? </div>
? ? ? ? <button @click="change">change</button>
? </div>
</template>
<script>
? import { defineComponent, reactive,ref } from 'vue';
? export default defineComponent({
? ? setup(props,context) {
? ? ? let arr = reactive({
? ? ? ? list:[]
? ? ? })
? ? ? function change(){
? ? ? ? console.log("change...");
? ? ? ? let newArr = [1,2,3]
? ? ? ? arr.list = newArr
? ? ? }
? ? ??
? ? ? return{
? ? ? ? arr,
? ? ? ? change
? ? ? }
? ? },
? });
</script>

使用reactive包裹數(shù)組賦值

需求

將接口請求到的列表數(shù)據(jù)賦值給響應(yīng)數(shù)據(jù)arr

代碼 

const arr = reactive([]);
const load = () => {
? const res = [2, 3, 4, 5]; //假設(shè)請求接口返回的數(shù)據(jù)
? // 方法1 失敗,直接賦值丟失了響應(yīng)性
? // arr = res;
? // 方法2 這樣也是失敗
? // arr.concat(res);
? // 方法3 可以,但是很麻煩
? res.forEach(e => {
? ? arr.push(e);
? });
};

方法1:vue3 使用 proxy,對于對象和數(shù)組都不能直接整個(gè)賦值;

方法2:concat 不改變原數(shù)組

// 方法4
const state = reactive({
? arr: []
});
state.arr = [1, 2, 3]
// 方法5
const state = ref([])
state.value = [1, 2, 3]
// 方法6
const arr = reactive([])
arr.push(...[1, 2, 3])
// 亦或者
arr.length = 0 // 清空原數(shù)組
arr.push(...res) // 解構(gòu)然后push進(jìn)去

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue實(shí)現(xiàn)雙向滑動(dòng)輸入條

    Vue實(shí)現(xiàn)雙向滑動(dòng)輸入條

    這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)雙向滑動(dòng)輸入條,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • vue項(xiàng)目依賴升級報(bào)錯(cuò)處理方式

    vue項(xiàng)目依賴升級報(bào)錯(cuò)處理方式

    這篇文章主要介紹了vue項(xiàng)目依賴升級報(bào)錯(cuò)處理方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • vue選項(xiàng)卡組件的實(shí)現(xiàn)方法

    vue選項(xiàng)卡組件的實(shí)現(xiàn)方法

    這篇文章主要為大家詳細(xì)介紹了vue選項(xiàng)卡組件的實(shí)現(xiàn)方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • vue2.X組件學(xué)習(xí)心得(新手必看篇)

    vue2.X組件學(xué)習(xí)心得(新手必看篇)

    下面小編就為大家?guī)硪黄獀ue2.X組件學(xué)習(xí)心得(新手必看篇)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-07-07
  • 解決vue加scoped后就無法修改vant的UI組件的樣式問題

    解決vue加scoped后就無法修改vant的UI組件的樣式問題

    這篇文章主要介紹了解決vue加scoped后就無法修改vant的UI組件的樣式問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • vue封裝swiper代碼實(shí)例解析

    vue封裝swiper代碼實(shí)例解析

    這篇文章主要介紹了vue封裝swiper代碼實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • defineProps宏函數(shù)不需要從vue中import導(dǎo)入的原因解析

    defineProps宏函數(shù)不需要從vue中import導(dǎo)入的原因解析

    這篇文章主要介紹了defineProps宏函數(shù)不需要從vue中import導(dǎo)入的原因解析,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2024-07-07
  • Vue3.0實(shí)現(xiàn)圖片預(yù)覽組件(媒體查看器)功能

    Vue3.0實(shí)現(xiàn)圖片預(yù)覽組件(媒體查看器)功能

    最近項(xiàng)目中有個(gè)場景,一組圖片、視頻、音頻、文件數(shù)據(jù),要求點(diǎn)擊圖片可以放大預(yù)覽,左右可以切換音視頻、文件,支持鼠標(biāo)及各種鍵控制?縮放,左右旋轉(zhuǎn),移動(dòng)等功能,這篇文章主要介紹了Vue3.0實(shí)現(xiàn)圖片預(yù)覽組件(媒體查看器),需要的朋友可以參考下
    2023-12-12
  • Vue3中使用ref標(biāo)簽對組件進(jìn)行操作方法

    Vue3中使用ref標(biāo)簽對組件進(jìn)行操作方法

    這篇文章主要介紹了Vue3中使用ref標(biāo)簽對組件進(jìn)行操作方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • VUE實(shí)現(xiàn)時(shí)間軸播放組件

    VUE實(shí)現(xiàn)時(shí)間軸播放組件

    這篇文章主要為大家詳細(xì)介紹了VUE實(shí)現(xiàn)時(shí)間軸播放組件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10

最新評論

SHOW| 溧水县| 页游| 青冈县| 镇雄县| 三亚市| 陵川县| 都兰县| 皋兰县| 环江| 乾安县| 枣强县| 卓资县| 渭南市| 西昌市| 三台县| 桂平市| 汉中市| 株洲县| 朔州市| 泌阳县| 泰州市| 清徐县| 乃东县| 深圳市| 镶黄旗| 竹山县| 新竹县| 昭平县| 颍上县| 新余市| 阿拉善盟| 合山市| 同仁县| 鄂伦春自治旗| 铜梁县| 东宁县| 扬州市| 漳浦县| 湘潭县| 鄂州市|