老师

老师

问题描述:

代码优化的问题:
图片描述
这个 JS 文件中定义了cartList
图片描述
这里就不需要去额外从 store 去拿 cartList 直接在上面的方法(useCommonCartEffect)中解构出来就可以,
问题是如果上面的方法中,如果是 把 cartList 从 toRefs 中 从 store.state中解构出来会报错 代码如下
const {cartList} = toRefs(store.state)
如果是 不使用 toRefs 解构 可以这样去写,代码如下
const cartList = store.state.cartList;
现在是问题是,使用 第一种写法,代码跑的有问题,不能进行加减,我的问题是这两种写法应该都是一个意思,就是去拿 cartList,是有什么额外的应用场景吗?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
imooc_慕慕 2022-12-11 10:52:33

同学你好,同学的写法也是可以的可以使用toRefs解构的由于解构后得到是ref形式的数据,需要通过打点调用value属性才可以获取其值因此需要调整下代码,参考如下:

https://img1.sycdn.imooc.com//climg/6395406b09a5412105140490.jpg

解构这种方式,使用起来相对复杂因此推荐使用视频中老师使用的方式。

老师写的useCommonCartEffect这种方式是使代码更加有层次感。

祝学习愉快~

  • 提问者 清夏_ #1

    关于 toRefs   ref   还要有 reactive 这几个的使用 老师能给串串吗

    toRefs 解构出来的就是ref 格式的吗 我看之前  在 reactive里面定义的 非基础类型数据

    也是使用  toRefs去解构,这里有点晕

    2022-12-11 11:06:16
  • imooc_慕慕 回复 提问者 清夏_ #2

    同学你好,参考学习地址:https://class.imooc.com/lesson/2155#mid=50986

    如果toRefs在改变数据前使用,那么就需要通过value属性获取,因为proxy封装的时候变为了value;

    这里进行了详细的总结,同学可以回顾一下。

    祝学习愉快~

    2022-12-11 11:24:19
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师