美文网首页
第 005 期 Vue 运行时性能优化之减少渲染组件的次数

第 005 期 Vue 运行时性能优化之减少渲染组件的次数

作者: 前端GoGoGo7 | 来源:发表于2021-04-06 12:32 被阅读0次

减少组件的渲染次数,能提升 Vue App 的运行时性能。通过写法的优化,可以减少不必要的组件渲染次数。

优化写法

1. 缓存动态组件

开发中,我们会碰到用动态组件的情况。如多标签的页面,每个标签的内容是个动态组件:

<component v-bind:is="currentTabComponent"></component>

标签来回切换,同一个组件会被重复渲染。用 keep-alive 包裹动态组件,可以缓存组件的渲染结果,保证同一个组件只被渲染一次。优化写法如下:

<keep-alive>
  <component v-bind:is="currentTabComponent"></component>
</keep-alive>

2. 合理使用 v-if,v-show

v-if 有更高的切换开销。v-show 有更高的初始渲染开销,其值变化时,内容并不会重新渲染。因此,如果需要非常频繁地切换,则使用 v-show 较好;如果在运行时条件很少改变,则使用 v-if 较好。

3. 插槽(Slot) 改成新的写法

插槽的数据发生改变时,旧的插槽写法,会导致插槽父组件的更新,插槽组件也就更新了。新的插槽写法只会更新插槽组件,少了更新父组件这过程。

旧的插槽写法:

<!-- 默认作用域插槽 (default scoped slot) -->
<my-component>
  <template slot-scope="{ msg }">
    {{ msg }}
  </template>
</my-component>

<!-- 具名插槽 (named slots) -->
<my-component2>
  <template slot="header">
    <p>Header</p>
  </template>
  
  <template slot="item" slot-scope="data">
    <h2>{{ data.title }}</h2>
    <p>{{ data.text }}</p>
  </template>
</my-component2>

Vue 2.6 加了新的插槽写法: v-slot。如下:

<!-- 默认作用域插槽 (default scoped slot) -->
<my-component v-slot="{ msg }">
  {{ msg }}
</my-component>

<!-- 具名插槽 (named slots) -->
<my-component2>
  <template v-slot:header>
    <p>Header</p>
  </template>
  
  <template v-slot:item="{ data }">
    <h2>{{ data.title }}</h2>
    <p>{{ data.text }}</p>
  </template>
</my-component2>

了解更多插槽新写法的内容,见 Vue 2.6 发布了

参考文档

相关文章

  • 第 005 期 Vue 运行时性能优化之减少渲染组件的次数

    减少组件的渲染次数,能提升 Vue App 的运行时性能。通过写法的优化,可以减少不必要的组件渲染次数。 优化写法...

  • 第 006 期 React 运行时性能优化之减少渲染组件的次数

    减少组件的渲染次数,能提升 React App 的运行时性能。通过写法的优化,可以减少不必要的组件渲染次数。 优化...

  • React函数组件优化

    主要针对于函数组件,父组件重渲染时,减少子组件不必要的渲染。 性能优化方向 1.减少重新 render 的次数 2...

  • React 组件性能优化

    React 组件性能优化最佳实践 React 组件性能优化的核心是减少渲染真实 DOM 节点的频率,减少 Virt...

  • 微信小程序优化uni-app

    性能优化-渲染性能减少调用setData频次 减少调用setData数据量 自定义组件实现局部数据刷新 性能优化-...

  • web 性能优化

    web 性能优化主要分为两类:加载时优化与运行时优化;从以下几个方面考虑;减少请求次数、减少资源加载量、减少请求耗...

  • vue性能优化

    Vue 应用运行时性能优化措施 引入生产环境的 Vue 文件 使用单文件组件预编译模板 提取组件的 CSS 到单独...

  • Android优化文章精选

    Android性能优化典范 Android性能优化典范 - 第1季Android性能优化之渲染篇Android性能...

  • vue 题目问题

    vue项目性能优化 1>、利用v-if和v-show减少初始化渲染和切换渲染的性能开销2>、computed、wa...

  • JavaScript 迭代优化(Duff's Devic

    众所周知,过多的循环会带来一定的性能开销,增加总体运行时间。而减少迭代次数能够优化性能。"Duff's Devic...

网友评论

      本文标题:第 005 期 Vue 运行时性能优化之减少渲染组件的次数

      本文链接:https://www.haomeiwen.com/subject/svuskltx.html