在 Vue 的使用过程中会遇到各种场景,当普通使用时觉得没什么,但是优化一下可以更高效更优美地进行开发。接下来就由石家庄网站建设工程师给大家分享它的使用吧。
1.路由根据开发状态懒加载
1.1 一般情况
一般我们在路由中加载组件的时候:
石家庄网站建设
当你需要懒加载 lazy-loading 的时候,需要一个个把 routes 的 component 改为 ()=>import(’@/views/login.vue’),甚为麻烦。
当你的项目页面越来越多之后,在开发环境之中使用 lazy-loading 会变得不太合适,每次更改代码触发热更新都会变得非常的慢。所以建议只在生成环境之中使用路由懒加载功能。
1.2 优化
根据 Vue 的异步组件和 Webpack 的代码分割功能可以轻松实现组件的懒加载,如:
石家庄网站建设
在区分开发环境与生产环境时,可以在路由文件夹下分别新建两个文件:
_import_production.js
石家庄网站建设
_import_development.js (这种写法 vue-loader版本至少v13.0.0以上)
石家庄网站建设
而在设置路由的 router/index.js文件中:
石家庄网站建设
这样组件在开发环境下就是非懒加载,生产环境下就是懒加载的了。
2.vue-loader小技巧
vue-loader 是处理 *.vue 文件的 webpack loader。它本身提供了丰富的 API,有些 API 很实用但很少被人熟知。例如接下来要介绍的 preserveWhitespace 和 transformToRequire
2.1用 preserveWhitespace 减少文件体积
有些时候我们在写模板时不想让元素和元素之间有空格,可能会写成这样:
石家庄网站建设
当然还有其他方式,比如设置字体的 font-size:0,然后给需要的内容单独设置字体大小,目的是为了去掉元素间的空格。其实我们完全可以通过配置 vue-loader 实现这一需求:
石家庄网站建设
它的作用是阻止元素间生成空白内容,在 Vue 模板编译后使用 _v(" ") 表示。如果项目中模板内容多的话,它们还是会占用一些文件体积的。例如 Element 配置该属性后,未压缩情况下文件体积减少了近 30Kb。
2.2 使用 transformToRequire 再也不用把图片写成变量了
以前在写 Vue 的时候经常会写到这样的代码:把图片提前 require 传给一个变量再传给组件。
石家庄网站建设
其实通过配置 transformToRequire 后,就可以直接配置,这样 vue-loader 会把对应的属性自动 require 之后传给组件。
石家庄网站建设
于是我们代码就可以简化不少。