vue项目异步问题之setTimeout使用

发布于 2022-09-07 19:45:27 字数 267 浏览 22 评论 0

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

深爱成瘾 2022-09-14 19:45:27

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

export default {
    props: {
        data
    },
    watch: {
        data (val) {
            // 说明数据过来了,执行反显数据的操作
            console.log(val)
        }
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文