Vue应用性能优化的经验总结

1. 介绍

Vue.js 是一个快速的渐进式 JavaScript 框架,允许我们构建快速而灵活的现代 Web 应用程序。由于 Vue.js 的开发方式简单,易于学习,易于理解,并且在大多数情况下,不需要太多的配置即可让其运行。

尽管 Vue.js 同时提供了高效和高度灵活性,但随着应用程序越来越复杂,其性能将成为一个问题。这篇文章将涵盖 Vue 应用程序的性能优化经验和一些实用技巧。

2. 开发环境优化

2.1 开发环境热重载的开启

开启Vue的开发环境热重载功能,能够大大提高我们的开发效率,降低页面刷新的次数。

在 Vue 项目中,我们可以使用 vue-cli 工具快速搭建一个基于 webpack 的项目。创建项目后,在项目运行的生命周期中,项目会编译代码并启动HTTP服务器。这往往需要花费大量时间,从而降低了开发效率。可以启用 「webpack-hot-middleware」 解决这个问题。Webpack Hot Middleware 配合 Webpack Dev Middleware(这是一个用来做文件监听与服务的轮询工具)使用,这两个工具能够使得开发环境进行热重载, 这意味着在代码变更(index.js)时,不需要刷新整个页面,浏览器会自动更新页面。

// Enable live reloading within the express app

const config = require('./webpack.dev.config')

const compiler = webpack(config)

const devMiddleware = require('webpack-dev-middleware')(compiler, {

noInfo: true,

publicPath: config.output.publicPath,

quiet: true

})

const hotMiddleware = require('webpack-hot-middleware')(compiler, {

reload: true

});

app.use(devMiddleware)

app.use(hotMiddleware)

3. 运行时性能优化

3.1 避免全局滥用Vue.filter()

Vue.filter() 方法在编译时被调用,所以 Vue.filter() 方法越多,应用程序的性能就会下降。

使用全局的过滤器来格式化日期,数值和字符串非常方便,但是,当应用程序变得复杂时, 这会有性能问题。如果需要为文本绑定自定义逻辑,使用计算属性。这样,将只计算会更改的当前计算属性,而不是其他的文本。

3.2 减少计算属性调用的次数

计算属性调用的次数是在特定 timespan 内发生的,它启动侦听器来处理变更。如果计算属性的调用次数很多,则会影响应用程序的性能。

计算属性是一个包装函数,通过接受处理的属性并为其返回计算结果(它的响应式侦听需要花费时间,当我们大量调用计算属性时,这会影响应用程序的性能)。可以使用以下技术来解决该问题:

缓存计算属性计算属性的缓存用来防止计算重复的浪费。只有在它所依赖的值发生变化时,才重新计算计算属性。

计算属性换成方法 当计算属性更改或重新渲染,计算属性将被重新计算并随后跟踪(并且影响应用程序的性能)。与计算属性不同,方法不会跟踪其依赖关系,并且不需要缓存。

3.3 启用keep-alive

启用 Vue 的 keep-alive 组件来提高应用程序的性能,因为它可以缓存不活动组件和减少 HTTP 请求。

keep-alive 组件是 Vue 的内置组件。它的作用是缓存不活动的组件。keep-alive 的主要原理是保存虚拟 DOM 树。当用户需要再次访问缓存组件时,Vue 从缓存中使用保存的虚拟 DOM 树重新渲染组件。

4. 编译时性能优化

4.1 最小化vue.js的体积

mini vue 是 Vue 的最小版本,它仅包含必需的函数和 API。使用 mini vue 可以减小应用程序的体积。

Vue.js 的默认版本包含了许多不必要的功能。这些功能在特定情况下才需要。例如,在 Web 应用程序中使用 Ajax,可能不需要 Vue 的 Ajax 模块。

可以使用 vue-cli-plugin-mpa(一个 Vue.js 脚手架工具),线上代码可以使用 rollup 和 uglifyjs-webpack-plugin 工具打包。

4.2 使用loadash/chunk数组实现按需加载

异步加载 Vue 应用程序的 chunk 序列并使用 loadash

按需加载的文件不会在初始加载时重新渲染。需要按需加载组件时,可以使用异步路线(即,在应用程序中,仅在需要时才加载某些 JavaScript 散块)。

Vue.js 是一个现代的 JavaScript 库,用于创建“可组合”的 Web 界面。使用 Webpack 将 Vue.js 代码构建为组件,可减小由于构建时依赖于整个库而导致文件体积增大的问题。

5. 总结

以上就是一些 Vue.js 应用程序性能优化的技巧和实践。这些经验适用于大多数 Vue.js 项目,可以提高应用程序的性能,使应用程序在不同的浏览器上的加载速度更快。

使用这些实践,我们可以轻松地提高 Vue 应用程序的性能。一个快速的 Vue 应用程序能够为用户提供更好的体验,并在 Google 和其他搜索引擎中有更高的 SEO 分数。让我们努力优化我们的 VueJS 应用程序,使它更好地为用户和我们的公司工作。