vue3 ref,reactive请求后的赋值问题以及解决方法

vue3 ref,reactive请求后的赋值问题以及解决方法

​ 开发的过程中,我们一定会进行接口的对接,将响应的结果赋值给我们页面上需要展示或者操作的变量,在vue3中,我们可能会稍微的有点不适应,在赋值的过程中,使用了错误的做法,导致一直失败

  1. 错误代码演示

    <template>
            <ul>
                <li v-for="(p,index) in images2" :key="index">
                    {{p.pic}}
                </li>
                <li v-for="(p,index) in images" :key="index">
                    {{p.pic}}
                </li>
            </ul>
    </template>
    <script>
    import {onMounted,reactive,ref} from 'vue'
    import {postBanner} from '@/api/index'
    
    export default {
       setup() {
            let  images = ref([])
            let images2 = reactive([])
            
            onMounted(async()=>{
                getSwipeAPI()
            })
            function getSwipeAPI(){
                postBanner(1).then((res)=>{
                    images.value = res
                    images2 = res
                })
            }
            console.log(images2);
            console.log(images);
        return { images,images2 };
      },
    }
    </script>
    

    image-20220614155504802

    最开始的想法是通过赋值然后拿到数据,渲染到页面上,但是ref可以拿到数据,reactive拿不到数据

image-20220614155630415

​ 然后我看了一下我的数据,是个对象类型的数据

121321321dsaf

​ 我们知道ref在存储对象类型的数据还是求助了reactive函数

​ 解决办法

1、push

        let images2 = reactive([])
         postBanner(1).then((res)=>{
                images2.push(res)
            })

2、对象赋值

        let images2 = reactive({
			list: []
		})
         postBanner(1).then((res)=>{
                images2.list = res
            })

这样就可以拿到值了

image-20220614160828676

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

周粥粥ya

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值