这几天抽空把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.pswp.cn/bicheng/88081.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/88081.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/88081.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Pycharm恢复默认设置,配置导致复制粘贴等不能使用

在file 种找到manage IDE settings在manage IDE settings中找到restore default settings

【王树森推荐系统】召回12:曝光过滤 Bloom Filter

概述 曝光过滤通常是在召回阶段做&#xff0c;具体的方法就是用 Bloom Filter 曝光过滤问题 如果用户看过某个物品&#xff0c;则不再把该物品曝光给用户。原因是同一个物品重复曝光给用户会损害用户体验&#xff0c;但也不是所有推荐系统都有曝光过滤&#xff0c;像 youtube 这…

基于STM32单片机的心率血氧监测系统设计(STM32代码编写+手机APP设计+PCB设计+Proteus仿真)

系列文章目录 文章目录 系列文章目录前言1 资料获取与演示视频1.1 资料介绍1.2 资料获取1.3 演示视频 2 系统框架3 硬件3.1 主控制器3.2 显示屏3.3 WIFI模块3.4心率血氧传感器 4 设计PCB4.1 安装下载立创EDA专业版4.2 画原理图4.4 使用嘉立创下单助手进行下单&#xff0c;打板。…

main(int argc,char **agrv)的含义

今天和大家讨论一个常见的但是不容易深入了解的知识点。那就是 main 函数声明中使用到的 argc 和 argv 的含义。通常我们写主函数的时候一般都是直接使用int main() 或者 void main() 来声明 main 函数。但是你知道吗&#xff1f;在c89/c99的语言标准中&#xff0c;main函数的声…

如何简单实现发版不影响客户使用?nginx负载

nginx负载发版不影响客户使用 1.需要二台服务器 2.二台服务器均是正式环境配置 3.服务器Nginx配置修改 发版顺序&#xff1a;先在服务器2发版&#xff0c;发布成功后&#xff0c;再改服务器Nginx配置&#xff0c;重新加载nginx&#xff1b;然后在服务器再发版&#xff0c;发布成…

qt笔记(1)——Qtablewidget使用

1.基础使用方法 &#xff08;略&#xff09; 2.坑和注意点 2.1 设置一个单元格的编辑属性 在代码中&#xff0c;想要修改一个单元格的编辑属性&#xff0c;需要对这个item的flags进行设置&#xff1b;注意对一个tablewidget的一个item成员进行设置后&#xff0c;进行一次编…

字符串的模糊匹配方法介绍

字符串的模糊匹配方法介绍 目录字符串的模糊匹配方法介绍一、编辑距离&#xff08;Levenshtein Distance&#xff09;复杂度分析二、Jaro-Winkler 距离复杂度分析三、最长公共子序列&#xff08;LCS&#xff09;复杂度分析四、模糊搜索&#xff08;Fuzzy Search&#xff09;复杂…

ActiveMQ在Spring Boot中的详细使用指南

📋 目录 🚀 ActiveMQ简介 什么是ActiveMQ? 核心概念 🏗️ 基础架构组件 📝 重要概念解释 ActiveMQ vs 其他消息中间件 🔧 环境搭建 1. ActiveMQ服务端安装 Docker方式(推荐初学者) 手动安装方式 2. 验证安装 访问Web管理界面 连接参数 测试连接 �…

二元一次方程

前言 最近刚学二元一次方程&#xff0c;想写一篇专栏熟悉一下本文写给初一的同学看&#xff0c;学过的就划了吧二元一次方程 两个未知数最高项次数为 111 次为整式方程二元一次方程的解不唯一&#xff0c;但是二元一次方程可以用一个未知数来表达另一个未知数eg:eg:eg: xy1x y…

AI编程的未来是智能体原生开发?

目录 前言 一、从“串行”到“并行”&#xff1a;什么是智能体原生开发&#xff1f; 1.1 传统模式&#xff08;串行思维&#xff09; 1.2 智能体原生模式&#xff08;并行思维&#xff09; 二、程序员的新角色&#xff1a;从代码手艺人到系统思想家 三、软件开发的终局&a…

【牛客刷题】小红的与运算

文章目录 一、题目介绍1.1 题目描述1.2 输入描述1.3 输出描述1.4 示例二、 解题思路2.1 核心算法设计2.2 性能优化关键2.3 算法流程图三、解法实现3.1 解法一:基础实现3.1.1 初级版本分析3.2 解法二:优化版本(推荐)3.2.1 优化版本分析四、总结与拓展4.1 关键优化技术4.2 算…

spring中 方法上@Transation实现原理

Spring中Transactional注解方法实现原理Spring的Transactional注解在方法级别实现事务管理的原理主要基于动态代理和拦截器机制&#xff0c;以下是其核心实现流程&#xff1a;1. 代理创建阶段当Spring容器启动时&#xff0c;会为带有Transactional注解的类创建代理对象&#xf…

qt-C++语法笔记之Stretch与Spacer的关系分析

qt-C语法笔记之Stretch与Spacer的关系分析 code review! 文章目录qt-C语法笔记之Stretch与Spacer的关系分析1. Stretch&#xff08;拉伸因子&#xff09;2. Horizontal Spacer 和 Vertical Spacer3. Stretch 和 Spacer 的关系4. 实际应用中的选择5. 注意事项6. 代码与 Qt Desig…

Qwen3技术综述

1. 引入 2025年5月&#xff0c;qwen推出了旗舰模型&#xff08;flagship model&#xff09;Qwen3-235B-A22B。并以Apache 2.0版权发布&#xff08;可自由商业使用&#xff0c;修改代码和商用要包含原始版权&#xff09;。本文对其技术报告中提到的数据处理技术与模型结构进行综…

[特殊字符] Excel 读取收件人 + Outlook 批量发送带附件邮件 —— Python 自动化实战

许多公司定期需要将不同部门或客户的报告发送给指定人员。手动操作容易出错、耗时且繁琐。今天这篇文章教你如何利用 Python 实现&#xff1a; &#x1f9e9; 从 Excel 中读取“收件人 抄送人 附件文件路径”&#xff1b; &#x1f4e4; 使用 win32com.client 调用 Outlook …

多模态大语言模型arxiv论文略读(152)

VidComposition: Can MLLMs Analyze Compositions in Compiled Videos? ➡️ 论文标题&#xff1a;VidComposition: Can MLLMs Analyze Compositions in Compiled Videos? ➡️ 论文作者&#xff1a;Yunlong Tang, Junjia Guo, Hang Hua, Susan Liang, Mingqian Feng, Xinya…

基于AR和SLAM技术的商场智能导视系统技术原理详解

本文面对室内定位算法工程师、智慧商场系统开发者、对VR/AR应用开发感兴趣的技术人员&#xff0c;解决如何通过SLAMAR技术破解大型商场室内导航的空间认知壁垒&#xff0c;实现沉浸式导览&#xff0c;本文提供完整技术方案与代码实现。 如需获取商场智能导视系统解决方案请前往…

Debezium日常分享系列之:认识Debezium Operator

Debezium日常分享系列之&#xff1a;认识Debezium Operator什么是Debezium OperatorDebezium Operator 的工作原理Debezium Operator 的优点Debezium Operator 使用场景Debezium Operator 的关键组件部署Debezium OperatorDebezium Operator 的使用什么是Debezium Operator De…

POSIX信号量,环形队列

是一种进程间或线程间同步机制&#xff0c;用于控制多个线程/进程对共享资源的访问&#xff0c;避免并发冲突。可以看作是一个计数器&#xff0c;通过对计数器的操作&#xff08;PV操作&#xff09;实现同步P操作(原子性)&#xff1a;&#xff0d;&#xff0d;&#xff0c;将信…

Python Day6

浙大疏锦行 Python Day6 内容&#xff1a; 描述性统计&#xff08;可视化分析&#xff09;单特征可视化&#xff08;连续、离散&#xff09;特征与标签可视化特征与特征可视化 代码&#xff1a; # TODO: 描述性统计 import pandas as pd import numpy as np import seaborn…