VUE逐点突破系列 -- Vue性能优化方法

const router = new VueRouter({

routes: [

{ path: ‘/foo’, component: () => import(‘./Foo.vue’) }

]

})

[](()keep-alive缓存页面


[](()使用v-show复用DOM


[](()v-for 遍历避免同时使用 v-if


    v-for=“user in activeUsers”

    :key=“user.id”>

    {{ user.name }}

    [](()长列表性能优化


    如果列表是纯粹的数据展示,不会有任何改变,就不需要做响应化

    export default {

    data: () => ({

    users: []

    }),

    async created() {

    const users = await axios.get(“/api/users”);

    this.users = Object.freeze(users);

    }

    };

    如果是大数据长列表,可采用虚拟滚动,只渲染少部分区域的内容

    <recycle-scroller

    class=“items”

    :items=“items”

    :item-size=“24”

    <FetchItemView

    :item=“item”

    @vote=“voteItem(item)”

    />

    参考[vue-virtual-scroller](()、[vue-virtual-scroll-list](()

    [](()事件的销毁


    Vue 组件销毁时,会自动解绑它的全部指令及事件监听器,但是仅限于组件本身的事件。

    created() {

    this.timer = setInterval(this.refresh, 2000)

    },

    beforeDestroy() {

    clearInterval(this.timer)

    }

    [](()图片懒加载


    对于图片过多的页面,为了加速页面加载速度,所以很多时候我们需要将页面内未出现在可视区域内的图片先不做加载, 等到滚动到可视区域后再去加载。

    参考项目:[vue-lazyload](()

    [](()第三方插件按需引入

    • 《大厂前端面试题解析+Web核心总结学习笔记+企业项目实战源码+最新高清讲解视频》无偿开源 徽信搜索公众号【编程进阶路】 ---------------------------------------------------------------------------

    像element-ui这样的第三方组件库可以按需引入避免体积太大。

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值