采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
书架获取到用户信息传到 用户信息组件的时候发现,无法渲染出数据,调用updated钩子发现第一时间并没有数据,然后才有数据。我的解决办法是使用computed,所以这里想问问老师,是不是mpvue只调用了一次setData,但是这时候还没返回数据,所以导致了无法实时渲染数据,但是使用了computed之后它会再一次调用setData,所以才渲染出了数据。 有劳Sam老师解答
你好,首先在界面渲染过程中,会调用一次 setData 更新 data 中的数据,并将界面刷新,之后我们通过:
this
.xxx = xxx
上述代码会触发 Vue 的 __patch__ 方法,该方法中核心实现如下:
function
updateDataToMP () {
var
page = getPage(
);
if
(!page) {
return
}
data = formatVmData(
diffData(
, data);
throttleSetData(page.setData.bind(page), data);
最后一个方法 throttleSetData 会调用 setData 方法,并触发小程序界面重绘,大致原理就是这样,所以只要使用 this.xxx = xxx 这样的语法就可以触发界面重新渲染了
参数通过prop传过去有可能出现第一时间没值的情况吗。就是异步请求数据。
这个完全有可能的,因为 props 中参数的初始化时机是在初次渲染时,此时接口还没请求到数据呢,所以自然是没有值的,所以需要做好非空判断哈
好的。谢谢Sam老师。点赞哦
登录后可查看更多问答,登录/注册
mpvue,一套代码搞定多个平台小程序,前端更易上手
1.3k 4
6.1k 18
1.1k 16
1.3k 14
1.6k 14
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号