当前位置: 首页 > news >正文

vue3官方文档学习心得

这几天抽空把vue3的文档整个看了一遍。简介 | Vue.js

23年写过一个vue2的项目,24年写了一个vue3的项目,页面功能比较简单,用几个简单的API,watch、watchEffect、ref、reactive就能实现的业务功能。

写了几年的react的,初上手vue时对比着用再翻翻别人的代码,点对点的翻阅一下官方文档,能解决大多数的问题。当时忙也就没能够系统进行学习。

这次整体看了一遍,也就能发现其中的精妙,以及解决之前困惑但是没能细究的一些问题,比如

1、nextTick是干什么的

全局 API:常规 | Vue.js

等待下一次 DOM 更新刷新的工具方法。

确保回调函数在 DOM 更新完成后执行,解决因异步更新导致的数据与 DOM 状态不一致问题。

2、nutui组件库没看见注册怎么就能使用了

app.component()注册全局组件

3、h()这个函数是干什么的

h() 函数用于创建 vnodes

对比react作者似乎封装了很多常用功能,一些细节的处理更节省用户的心智,比如

1、双向数据绑定 v-model,还有一些其他指令 v-show、v-if、v-for、v-html、v-bind(:)、v-on(@)

2、事件处理后缀

  • .stop

  • .prevent

  • .self

  • .capture

  • .once

  • .passive

3、watchEffect自动追踪依赖 ,react里useeffect需要显示指定;computed和useMemo差不多;

4、使用keepAlive组件多了两个生命周期

5、组合式函数和react的自定义hook很像,作者的灵感来源也是这里

6、插槽的话,vue一个组件可以有多个插槽,name区分;react只有一个children;

7、依赖注入provide inject 的思想则和react的usecontext 可以类比一下

8、teleport组件和react的??API一样的效果

9、suspense则解决了异步依赖的加载结果显示的问题

10、vue同样支持jsx

对比vue2则是

1、在响应式原理上做了提升,proxy替代了object.definedProperty,文档里作者没提解决了什么问题;其实是解决 添加或删除属性时不能追踪到的问题

2、最大的一个亮点是组合式API的使用,能更好的复用代码逻辑;选项式API同时保留,作者建议小型项目可以使用,大型复杂的则使用组合式API;选项式API也是基于组合式API封装而来的,vue3暴露了更多底层的方法;

3、typescript开发的,支持typescript那是必须的,多了类型校验

4、性能优化方面:tree-shaking减小包体积,异步组件 代码分割

5、文档中作者多次提及,vue3自动对代码进行优化,无需用户在做多余的优化处理

6、diff方法优化,在节点上标记是哪种类型的更新,缓存静态节点

再一点就是代码组织方式上定义属性、方法、事件的一些区别

1、选项式API。this指向当前组件实例

import { defineComponent } from 'vue'export default defineComponent({// 启用了类型推导props: {name: String,id: [Number, String],msg: { type: String, required: true },metadata: null},mounted() {this.name // 类型:string | undefinedthis.id // 类型:number | string | undefinedthis.msg // 类型:stringthis.metadata // 类型:any}
})

2、组合式API。没有this

<script setup>
import { ref, onMounted } from 'vue'onMounted(() => {console.log(`the component is now mounted.`)
})const count = ref(0)function increment() {count.value++
}
</script><template><button @click="increment">{{ count }}</button>
</template>
<script>
import { ref } from 'vue'export default {setup(props, { attrs, slots, emit, expose }) {...}
}export default {setup() {const count = ref(0)// 返回值会暴露给模板和其他的选项式 API 钩子return {count}},mounted() {console.log(this.count) // 0}
}
</script><template><button @click="count++">{{ count }}</button>
</template>

组合式API离不开setup这个函数,这个函数是在beforeCreate之前就调用了;setup() 钩子是在组件中使用组合式 API 的入口。

我的学习习惯更喜欢看完全局了解大概,再逐一进行深究。

http://www.dtcms.com/a/270069.html

相关文章:

  • SpringCloud系列 - Gateway 网关功能(五)
  • 人体坐姿检测系统开发实战(YOLOv8+PyTorch+可视化)
  • 本地部署 R 语言环境运行软件 RStudio Server 并实现外部访问
  • 玩具语音方案选型决策OTP vs Flash 的成本功耗与灵活性
  • window wsl 环境下编译openharmony,HarmonyOS 三方库 FFmpeg
  • VLLM 调用有哪些超参数; clean_up_tokenization_spaces是什么
  • ubuntu24.04安装NFS网络文件系统/ARM开发板NFS挂载
  • 20250708-03-string结构及命令详解_笔记
  • CI/CD — DevOps概念之实现k8s持续交付持续集成(一)
  • NumPy-统计函数详解
  • UE5内置插件 AnimToTexture 简单入门
  • 一次编码,多端运行:HTML5多终端调用
  • Android 依赖注入框架详解
  • 2025年7月8日学习笔记——模式识别与机器学习绪论
  • bro code Interface
  • 社区云管家 - 智慧生活新方式 ——仙盟创梦IDE
  • 玩转Docker | 使用Docker部署HomeBox家庭库存管理工具
  • NestJS 系列教程(四):中间件、中断器与异常过滤器详解
  • JavaScript基础篇——第一章 JavaScript基础的认识
  • MySQL 【环境安装、基础认识】
  • OpenCV在Visual Studio 2022下的配置
  • 牛市来临之际,如何用期权抢占反弹先机?
  • Centos和麒麟系统如何每天晚上2点10分定时备份达梦数据库
  • VUE 带有搜索功能的穿梭框(简单demo)
  • 【DOCKER】-2 docker基础
  • 科技云报到:云智融合双buff,AI已开挂
  • 数据结构-顺序表-拿硬币
  • Effective Python 条款5 用辅助函数取代复杂的表达式
  • 数据结构:位图
  • 【保姆级目标检测教程】Ubuntu 20.04 部署 YOLOv13 全流程(附训练/推理代码)