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

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

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vue的router进入时如果渲染页面会卡
    86
    0

    问题描述

    路由页面进入时,渲染页面会卡

    问题出现的环境背景及自己尝试过哪些方法

    1.vue-router跳转路由 ,路由进入有个300ms的执行动画
    2.要进入的页面在created的时候发送请求。
    3.收到请求结果,浏览器渲染页面
    这个时候就有问题了,vue-router的动画在执行的时候,请求结果返回,浏览器开始渲染数据, 这个时候就会特别卡
    ,我现在的解决办法是在收到数据后settimeout 2OO毫秒后,在渲染数据;这样子就不会卡, 但是这样子就会有一段等待时间。请问各位大佬, 有没有别的办法可以解决这个问题

    相关代码

    // 请把代码文本粘贴到下方(请勿用图片代替代码)
    // 路由进入动画
    slider()

    .slider-enter-active, .slider-leave-active 
        transition: all 300ms
    .slider-enter, .slider-leave-to 
        transform: translate3d(100%, 0, 0);

    //页面在进入的时候发送请求
    created() {

      
        this._getCommonInfo();
    },      

    // 设置200ms后隐藏等待框, 展示数据

        _getCommonInfo() {
            const address = `/game/info/${this.id}?token=${this.getToken}`;
            getCommonInfo(address).then((res) => {
                console.log(res);
                setTimeout(() => {
                    this.showFirstInloading = false;
                }, 200);
                this.commentScore = res.data.commentScore;
                this.comments = res.data.comments;
                this.gameInfo = res.data.gameInfo;
         
            });
        },

    你期待的结果是什么?实际看到的错误信息又是什么?

    如果去掉延时, 页面进入的时候会卡, 如果不去掉延时, 页面进入就会看到一段时间的等待框。有没有好的折中的办法呢

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 且暂放白鹿 普通会员 1楼

      在Vue中,如果你的router的进入页面时会卡顿,可能是由于以下原因:

      1. 路由过长:如果你的路由非常长,可能会导致页面加载时间过长,从而卡顿。

      2. 服务器响应慢:如果服务器响应慢,页面的渲染可能会被延迟,从而卡顿。

      3. 状态管理问题:如果你的路由中使用了状态管理库(如 Vuex),但是状态管理的代码逻辑有问题,也可能会导致页面卡顿。

      4. 兼容性问题:如果浏览器的兼容性问题,也可能会导致页面卡顿。

      你可以通过以下方式来解决这个问题:

      1. 对于路由过长的问题,你可以尝试优化路由的结构,比如将长路由拆分成多个短路由,或者使用懒加载技术来分批加载路由。

      2. 对于服务器响应慢的问题,你可以尝试优化服务器的性能,比如使用CDN来分发静态资源,或者使用负载均衡技术来分摊服务器压力。

      3. 对于状态管理问题,你需要确保你的状态管理代码逻辑是正确的,可以避免因为状态管理问题导致的页面卡顿。

      4. 对于兼容性问题,你需要确保你的代码是兼容所有浏览器的,可以避免因为浏览器兼容性问题导致的页面卡顿。

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