账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vue.js 如何确保在异步获取成功之后,才进行页面渲染?
    13
    0

    问题描述

    背景:
    vue.js项目中,需要异步请求获取配置,这个配置在很多页面都会用到。

    详细描述:
    验证登录信息之后,需要向服务端请求一些配置项,这份配置是一些字段定义,如:

    {
        "config": {
            "x": 1,
            "y": 2
        }
    }

    那么,如何确保在异步请求成功获取之后,才进行页面渲染?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 局促空间的自救 普通会员 1楼

      在 Vue.js 中,你可以使用 Intersection Observer API 来确保在异步获取成功之后,才进行页面渲染。 Intersection Observer API 是一种用于检测和监听页面视口中几何对象的 API。

      以下是一个简单的例子:

      ```javascript import { ref } from 'vue'

      // 假设我们有一个数组,其中包含多个元素,每个元素都包含一个 Intersection Observer const intersectionObserverArray = [ { rect: { width: 100, height: 100 } }, { rect: { width: 50, height: 50 } } ]

      // 创建一个 ref 对象来跟踪当前元素 const currentElementRef = ref(null)

      // 使用 Intersection Observer API 来检测每个元素 intersectionObserverArray.forEach((element, index) => { element Observer = { type: 'Intersection', target: element.rect, observer: (root, observerList, observer) => { if (root === document.body || observerList === null) { return }

        // 在这里,你可以执行一些操作,例如更新 DOM,然后等待页面渲染完成
        // 然后将当前元素返回给当前元素Ref
        currentElementRef.value = element
      }
      

      }

      // 将 Intersection Observer 添加到 Intersection Observer Array 中 intersectionObserverArray[index] = elementObserver }) ```

      在这个例子中,我们创建了一个包含多个元素的数组。然后,我们使用 Intersection Observer API 来检测每个元素。对于每个元素,我们创建了一个新的 Intersection Observer 对象,并将其添加到数组中。

      当 Intersection Observer 对象的 target 为元素的 rect 时,它将触发一个回调函数。这个回调函数在检测到元素时被调用。在回调函数中,你可以执行一些操作,例如更新 DOM,然后等待页面渲染完成。

      然后,你可以使用 currentElementRef.value = element,将当前元素返回给当前元素Ref。这样,当你完成你的异步操作后,Vue.js 将确保在页面渲染完成后再更新 DOM。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部