vue组件异步动态加载

当页面过大引用的组件过多,或者想要优化下页面的加载速度时可以考虑把之前的一次性引入组件的方式改成动态按需引入.

1.组件引入到页面中但未加载

const lazyChangeGeographicLocation = () => import('@/components/addrChooseList/components/change-geographic-location.vue')

2.v-if默认隐藏组件,首次进入不渲染

  <lazy-change-geographic-location v-if='showChooseLoaction' :isShowBack="true" @onHide="onHide" @closeAndBack="closeAndBack" @handleLocation="handleGeoLocation" />

3.当需要组件加载并渲染时执行第一步定义的方法,回调中控制组件的展示属性

  data () {
    return {
      showChooseLoaction: false,
      addrLoad: false  // 加载状态,控制是否加载组件,当需要渲染组件时提前改为true
    }
  },
   otherLocationOption() {
      if (!this.addrLoad) {
        lazyChangeGeographicLocation().then(() => {
          this.addrLoad = true;
          this.addrListShow = false
          this.showChooseLoaction = true
        })
        return;
      }
      this.addrListShow = false
      this.showChooseLoaction = true
    },

一般是默认进入时v-if控制完全不渲染,当第一次渲染成功后就没必要在用v-if隐藏掉,保留在内存中一直调用即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值