网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
05月02日
漏签
0
天
前端吧
关注:
224,103
贴子:
1,386,080
看贴
图片
吧主推荐
游戏
13
回复贴,共
1
页
<<返回前端吧
>0< 加载中...
请教大佬们一个vue3中watchEffect的问题
只看楼主
收藏
回复
句号zzz
无名之辈
2
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
vue3官方文档中,组合式函数实例中
useFetch.js中data.value = await res.json()赋值为什么不会触发useFetch.js中的watchEffect
句号zzz
无名之辈
2
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
官方文档实例地址:异步状态示例部分
https://cn.vuejs.org/guide/reusability/composables.html#what-is-a-composable
广告
立即查看
句号zzz
无名之辈
2
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
试了一下 App.vue中写watchEffect是可以监听到 useFetch.js文件返回的data。但是useFetch.js文件内的watchEffect监听不到data,但是可以监听到app.vue中的计算属性url
句号zzz
无名之辈
2
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
我以为 useFetch.js中的watchEffect内修改data可能会有死循环问题,实际没有。app.vue中的watchEffect内修改data会出现死循环问题。
有大佬解惑吗
梦里知花落
后起之秀
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
首先,要理解 watchEffect 的执行是同步的,但它会追踪其执行期间访问的所有响应式依赖项。当你使用异步代码时,这些依赖项可能在异步操作完成之前就已经被读取了,但 watchEffect 的回调函数会在同步执行后立即返回,不会等待异步操作完成。
过拟合
后起之秀
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
effect不会被trigger的方式递归调用,这个在实现里考虑到了这一点
雨中一朵云
四方游侠
5
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
你可以试下usefetch里面改url应该也会死循环,usefetch里面的依赖应该是url而不是data
句号zzz
无名之辈
2
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
死循环原因找到了 watchEffect内写这两句就会死循环,不知道为啥。console.log(count.value);setTimeout(() => {count.value = count.value + 1;}, 1000);
广告
立即查看
小雨写立可白z
江湖少侠
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
你再watcheffect内部修改了依赖,当然死循环了,哪有这么用的,本来就是消除副作用的函数,你非要在制造副作用,先看看文档吧。
机智晨
后起之秀
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
因为在函数运行期间没有收集到相关依赖
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示