Vue项目性能优化实践指南

Vue 框架通过数据双向绑定和虚拟 DOM 技术,帮我们处理了前端开发中最脏最累的 DOM 操作部分, 我们不再需要去考虑如何操作 DOM 以及如何最高效地操作 DOM;但 Vue 项目中仍然存在项目首屏优化、Webpack 编译配置优化等问题,所以我们仍然需要去关注 Vue 项目性能方面的优化,使项目具有更高效的性能、更好的用户体验。本文是作者通过实际项目的优化实践进行总结而来,希望读者读完本文,有一定的启发思考,从而对自己的项目进行优化起到帮助。本文内容分为以下三部分组成: Vue 代码层面的优化; webpack 配置层面的优化; 基础的 Web 技术层面的优化。 1. 代码层面的优化 1.1、v-if 和 v-show 区分使用场景 v-if 是 真正 的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建;也是惰性的:如果在初始渲染时条件为假,则什么也不做——直到条件第一次变为真时,才会开始渲染条件块。 v-show 就简单得多, 不管初始条件是什么,元素总是会被渲染,并且只是简单地基于 CSS 的 display 属性进行切换。 所以,v-if 适用于在运行时很少改变条件,不需要频繁切换条件的场景;v-show 则适用于需要非常频繁切换条件的场景。 1.2、computed 和 watch 区分使用场景 computed: 是计算属性,依赖其它属性值,并且 computed 的值有缓存,只有它依赖的属性值发生改变,下一次获取 computed 的值时才会重新计算 computed 的值; watch: 更多的是「观察」的作用,类似于某些数据的监听回调 ,每当监听的数据变化时都会执行回调进行后续操作; 运用场景: 当我们需要进行数值计算,并且依赖于其它数据时,应该使用 computed,因为可以利用 computed 的缓存特性,避免每次获取值时,都要重新计算; 当我们需要在数据变化时执行异步或开销较大的操作时,应该使用 watch,使用 watch 选项允许我们执行异步操作 ( 访问一个 API ),限制我们执行该操作的频率,并在我们得到最终结果前,设置中间状态。这些都是计算属性无法做到的。……

阅读全文

[golang知识讲解]go命令源码文件和库源码文件

源码文件分为三种: 命令源码文件 程序入口; 属于main包, 包含无参数无结果的main函数; 通过go run命令运行, 可通过flag包接收参数; 库源码文件 存放程序的变量、常量、函数、结构体和接口, 被其他文件代码调用 测试源码文件 同目录下的源码文件代码包声明语句是一致的, 源码文件代码包声明语句和其所在的目录名称不一致,这样生成的文件和其父目录名称一致; ……

阅读全文

[golang知识讲解]go工作区和GOPATH

首先到go官网下载对应的安装包, 然后配置3 个环境变量: GOROOT:Go 语言安装根目录的路径,也就是 GO 语言的安装路径 GOPATH:若干工作区目录的路径。是我们自己定义的工作空间 GOBIN:GO 程序生成的可执行文件(executable file)的路径 go源码安装后如果产生了归档文件(以“.a”为扩展名的文件),就会放进该工作区的 pkg 子目录;如果产生了可执行文件,就可能会放进该工作区的 bin 子目录 某个工作区的 src 子目录下的源码文件在安装后一般会被放置到当前工作区的 pkg 子目录下对应的目录中,或者被直接放置到该工作区的 bin 子目录中 go build构建命令: 如果构建的是库源码文件, 结果文件只会存在于临时目录中 如果构建的是命令源码文件, 结果文件会放在源码文件所在的目录中 go install安装命令: 如果安装的是库源码文件, 结果文件会放在工作区的 pkg 目录下的某个子目录中 如果安装的是命令源码文件, 结果文件会放在工作区的 bin 目录中 ……

阅读全文