网站首页 > 博客文章 正文
vue3 已经发布很久了,但是也有很多小伙伴因为兼容性的问题,还是使用 vue2 的版本。所以大家对 vue3 的熟练度还远远不如 vue2。今天我们来盘点一下一些 vue3 代码中的小 Tips, 看看你知道多少。
善用调试hook
vue3 新增了 onRenderTracked 和 onRenderTracked 两个 hook 在开发环境中用于追踪依赖的调用过程。
- onRenderTracked 当组件渲染过程中追踪到响应式依赖时调用
- onRenderTriggered 调试钩子,当响应式依赖的变更触发了组件渲染时调用。
善用 VNode 节点生命周期
在vue中,每个节点 VNode 在不同的生命周期内都会触发不同的生命周期函数,我们可以监听这些生命周期来处理我们想要做的事情。这些生命周期函数包括以下钩子:
- onVnodeBeforeMount
- onVnodeMounted
- onVnodeBeforeUpdate
- onVnodeUpdated
- onVnodeBeforeUnmount
- onVnodeUnmounted
这些生命周期函数在 vue 文档中并未体现,应该是属于内部使用
Teleport
官方的解释是将Teleport 组件内的插槽内容渲染到 DOM 中的另一个位置。
通过 Teleport 组件,我们可以在项目的任意组件位置定义渲染在指定挂载点的内容,非常方便。以前在vue2 还得手动 mount 再 appendChild 才能实现。
Fragments
通过 Fragments 特性,我们可以在组件内定义多个根组件了。
Suspense
虽然这是一个实验性质的内置组件,但是在解决异步数据展示的场景非常实用,它将以前要写大量的样本代码逻辑进行抽象,只需要通过指定的插槽传入对应的元素即可。
useAttrs & useSlots
在 setup 中,我们现在可以使用 useAttrs 和 useSlots 钩子,实现组件attrs 参数和 slot 属性的获取。避免以前通过this.$attrs 的方式进行获取。进一步降低代码的复杂度。
而且在 vue3 中 attrs 现在包括了传给子组件的所有属性(attr、class、 style)
自定义 v-model
在组件善于使用自定义的 v-model 这样在组件通信的上,可以减少很多不必要的样式代码使用。在vue3 中,自定义 v-model 采用了新的实现方案:
可以看出 vue3 在自定义 v-model 上更加统一了,以前 vue2 自定义 v-model 的时候,外部绑定是使用 属性 + .sync 修饰符的。现在是直接可以使用 v-model+参数的形式,更加直观了。
小结
如果你有在日常开发使用还有其他关于 vue3 的使用技巧,欢迎留言评论,大家一起探讨,一起进步~
猜你喜欢
- 2024-10-26 尤雨溪在直播中讲到的Vue3.0 Beta的那些特性,快记笔记了
- 2024-10-26 Vue Conf 2023 精彩回顾,新语法草案助 Vue 继续封神
- 2024-10-26 vue3 和Vu2的区别有哪些?(vue3和vue2的优缺点)
- 2024-10-26 基于vue3+ts+vite封装的动态表单,支持编辑生成页面表单配置渲染
- 2024-10-26 什么是Vue 3 “Vapor Mode”(转)(vue3 provider)
- 2024-10-26 Vue 3源码公布,89%的人收藏了它(vue3 源码解读)
- 2024-10-26 Vue 3 源码开放,你学习了吗?(vue源码讲解)
- 2024-10-26 Vue3迁移之路,你已准备起航?(vuereal转移技术原理)
- 2024-10-26 Vue3.3 + TS4 ,自主打造媲美 ElementPlus 的组件库(超清完结)
- 2024-10-26 记一次 Vue2 迁移 Vue3 的实践总结
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)