为了账号安全,请及时绑定邮箱和手机立即绑定

vue项目异步问题之setTimeout使用

vue项目异步问题之setTimeout使用

白衣染霜花 2018-07-23 09:30:35
现有项目为 选择规格创建商品的模块,单独封在一个子组件中。做编辑功能时,往子组件传值,需要把已经选择的值反显出来。首先页面加载的时候,要初始化数据,即先查询出规格列表。但是做反显的时候,不能成功,打印没有初始化数据。即涉及初始化数据和反显的数据先后问题。我使用了setTimeout 在created钩子函数中,让其延迟500ms再去将反显的值赋上去就可以了。但是觉得不太好~~而且时间设成100ms 就不行。。。请问setTimeout能不能使用,有什么利弊?有没有更好的实现方法~~~谢谢
查看完整描述

1 回答

?
弑天下

TA贡献1818条经验 获得超7个赞

你在 create 钩子函数里写的话,数据还没有过来,当然打印没有初始化的数据啊,使用setTimeout缺点就是时间不好把握,如果设置时间长了,造成浪费,时间短了,数据不会出来,所以,楼主要找到数据过来的那个点,楼主应该使用props传递数据的吧,建议用watch来观察这个数据,当有数据传递过来,触发对应的事件

export default {
    props: {        data
    },
    watch: {        data (val) {
            // 说明数据过来了,执行反显数据的操作            console.log(val)
        }
    }
}


查看完整回答
反对 回复 2018-07-30
  • 1 回答
  • 0 关注
  • 1301 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信