vue项目异步问题之setTimeout使用

现有项目为 选择规格创建商品的模块,单独封在一个子组件中。做编辑功能时,往子组件传值,需要把已经选择的值反显出来。首先页面加载的时候,要初始化数据,即先查询出规格列表。但是做反显的时候,不能成功,打印没有初始化数据。即涉及初始化数据和反显的数据先后问题。我使用了setTimeout 在created钩子函数中,让其延迟500ms再去将反显的值赋上去就可以了。但是觉得不太好~~而且时间设成100ms 就不行。。。

请问setTimeout能不能使用,有什么利弊?
有没有更好的实现方法~~~谢谢


白衣染霜花
浏览 1315回答 1
1回答

弑天下

你在 create 钩子函数里写的话,数据还没有过来,当然打印没有初始化的数据啊,使用setTimeout缺点就是时间不好把握,如果设置时间长了,造成浪费,时间短了,数据不会出来,所以,楼主要找到数据过来的那个点,楼主应该使用props传递数据的吧,建议用watch来观察这个数据,当有数据传递过来,触发对应的事件export default {     props: {        data     },     watch: {        data (val) {             // 说明数据过来了,执行反显数据的操作            console.log(val)         }     } }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Vue.js