关于vue3项目路由跳转问题?

在vue3项目中,当我从一个页面(首页)跳转到另一个页面(详情页)时,详情页中的元素距离顶部的距离不能正确算出来(在setup中执行计算的方法),而当我刷新详情页时可以正确算出,请问如何解决这个问题:
image.png
路由界面:
code.png
首页中点击跳转:
code.png
详情页中获取元素高度:
code.png
调整获取位置后还是一样:
code.png
需求已解决,问题未解决

阅读 1.9k
1 个回答

可能是路由进去时没有DOM完全渲染好就获取就需要调整一下位置, 也可能是因为获取的方法有问题, 需要补充一下代码

刷新后没有报错, 而且正常说明逻辑上是没有语法问题的
image.png
这个reactive不知道是做什么的不过看着你是在setup里面获取的
image.png
下面是vue3的生命周期:

  • setup() 钩子是在组件中使用组合式 API 的入口
  • setup中没有this
  • setup函数只会在组件初始化的时候执行一次
  • setup函数在beforeCreate生命周期钩子执行之前执行
    从中可以看到此时DOM没有生成, 因此获取DOM的相关数据应该是在第二个黑框的钩子函数里面onMounted, 根据你的写法可以这样:

    <script lang="ts">
    // 一定要先导入
    import { onMounted } from 'vue'
    export default {
     setup() {
       onMounted(() => {
          // DOM处理
      })
    
    }
    }
    </script>
    

    image.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏