Appearance
异步的created
本节目标:理解“异步的created”的核心思路,并能把它用于实际开发或面试表达。 在Vue的生命周期钩子中,created 钩子是在实例创建完成后被立即调用的。在这个阶段,实例已完成以下的配置:数据观测 (data observer),属性和方法的运算,watch/event事件回调。然而,此时挂载阶段尚未开始,$el属性目前还不可见。
如果你在 created 钩子中使用 async/await ,它会允许你在创建 Vue 实例之后,但在渲染之前,执行异步操作。然而,这并不会阻塞 Vue 的渲染过程。也就是说,即使你的 created 钩子是异步的,Vue 仍然会在异步操作完成之前开始渲染。这可能会导致在异步操作的结果可用之前,用户会看到一个未完全初始化的视图。
实际上,Vue 本身并不支持在生命周期钩子中进行阻塞式的异步操作。也就是说,你不能让 Vue 在异步操作完成之前等待。因此,如果你需要在渲染前完成某些异步操作,通常的做法是在路由守卫中完成这些操作,然后再进行路由导航。
在你提供的代码中,created 钩子中的异步操作用于处理用户的登录。如果 is_sso 是 true,并且用户还未登录,则会触发一个异步的 login 操作。然而,这个操作并不会阻塞视图的渲染,视图仍然会在登录操作完成之前被渲染出来。
如果你希望等待登录操作完成后再进行渲染,你可能需要将这个操作移动到路由守卫中,并在操作完成后再进行导航。
