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

长列表性能优化


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

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-scrollervue-virtual-scroll-list

事件的销毁


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

created() {

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

},

beforeDestroy() {

clearInterval(this.timer)

}

图片懒加载


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

参考项目:vue-lazyload

第三方插件按需引入


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

import Vue from ‘vue’;

import { Button, Select } from ‘element-ui’;

Vue.use(Button)

Vue.use(Select)

无状态的组件标记为函数式组件


子组件分割


变量本地化


{{ result }}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值