vue3 技巧
1. 组件自动注册
在项目中有很多通用组件需要重复导入,以前的做法是在 main.js 中一个一个引入,然后注册为全局组件。现借助于 vite,我们完全可以这样做
1 | // vite.config.js |
不用在每个文件手动导入相同组件,通过 Vite 插件自动扫描 components 目录,直接在模板中使用组件,省掉 import 语句。
2.图片懒加载自定义指令
在一些重效果的项目中,首页会有很多的图片需要加载,如果一进入就开始加载,可能会导致页面展示的滞后。可以封装一个图片懒加载指令,减少首屏首页的加载时间,利用 IntersectionObserver 监听元素进入视口:
1 | app.directive("lazy", { |
注意一定要设置图片的占位符,防止页面出现抖动。
3.动态 CSS 变量,动态 Class
在表单验证、交互反馈 等一些场景中,动态去绑定 css 变量和 class 类名是很实用的。
1 | <!-- 动态css变量 --> |
1 | <!-- 动态class类名 --> |
4.Suspense“加载协调员”的巧妙调度
在 Vue3 应用时,应该遇到过这样的尴尬情况异步组件还没加载完,页面突然白屏,用户一脸懵,体验感直线下降。而 Suspense 这位“加载协调员”能帮你巧妙化解这个难题。
1 | <template> |
5.组件传送到指定位置
有时候,我们会遇到这样的需求:一个组件的逻辑在某个地方,但它的渲染位置却要在其他地方,比如模态框、下拉菜单等。Vue3 的 Teleport 组件就能轻松实现这个功能。
1 | <template> |
这样很好的解决了父组件 overflow:hidden 导致模态框被裁剪的一些情况。
6.组件缓存
在标签页切换的时候,一个页面需要导入多个组件,这个时候,如果不希望切换的时候,将组件初始化,可以利用 KeepAlive 组件来实现想要的效果。
1 | <template> |
配置选项:
- include:指定缓存组件
- max:最大缓存实例数
7.用 VueUse 库提升开发效率
VueUse 是一个非常强大的 Vue 组合式函数库,它提供了很多实用的组合式函数,可以帮助我们快速实现各种功能,大大提升开发效率,最主要足够小巧,可以看一个列子:
1 | // 引入 VueUse 中的 useIntersectionObserver 函数 |
VueUse 就像是一个百宝箱,里面有很多实用工具。在上面例子中,使用了 useIntersectionObserver 函数来监听元素的可见性,当元素进入可视区域时,就可以执行一些操作,比如加载数据。这对于实现懒加载、无限滚动等功能非常有用。
8. 防抖元素
vue2 版本
1 | // my-throttle.js |
1 | // ...temeplate.vue |
Vue3
1 | // throttle.ts |
1 | // throttle.js |