Vue3.0来了
Vue3.0更新了啥
Vue这次3.0发布了,博客平台、公众号、朋友圈基本都有这么一条新闻,可见大家对其期待程度,毕竟Vue 有 130 万的使用者嘛,萌新不知不觉感觉瑟瑟发抖。看着这么多页的改动就像是那新鲜的水果,鲜嫩欲滴,无从下?。
于是乎,本文就简单的探索一下3.0带来的一些东西。
其中两个比较重要的更新,一个是 Composition API,另一个是对 TypeScript 的全面支持。
但是目前看来,市面上的各大组件库还没来得及针对 Vue3.0 进行改版升级。
Application API
一个是 Composition API,另一个是对 TypeScript 的全面支持 周边的插件如 Vue-Router、Vuex、VSCode 插件 Vetur 等都在有序的进行中 下面简单介绍一下
Application API
全局改变的动作,都在 createApp 所创建的应用实例中,如下所示:
import { createApp } from "vue";
const app = createApp({});
-
config
应用的配置项 config 是一个包含 Vue 应用程序全局配置的对象。可以在挂载应用程序之前修改下面列出的属性。 app.config.errorHandler = (err, vm, info) => { // info 为 Vue 在某个生命周期发生错误的信息 };- devtools:boolean 工具检测
- errorHandler:Function 生命周期的错误 ❌ 信息
- globalProperties 全局变量 [key:string]:any 组件内的属性权限比较高 app.config.globalProperties.name = "name";
-
component
第一个参数为组件名字,第二个参数 Function|| Object。如果只传第一个参数,返回组件 import { createApp } from "vue"; const app = createApp({}); // 注册options 对象 app.component("my-component", { /* ... */ }); // 检索组件 const MyComponent = app.component("my-component"); -
directive
自定义指令 基本不变 app.directive("my-directive", { beforeMount() {}, mounted() {}, beforeUpdate() {}, updated() {}, beforeUnmount() {}, unmounted() {}, });
多数全局 API 都没变化,参考 2.x 写法即可
Composition API
Vue2.x 配置方法写组件,随着业务复杂度越来越高,代码量会不断的加大,由于相关业务的代码需要遵循 option 的配置写到特定的区域,导致后续维护非常的复杂,同时代码可复用性不高 Composition API 带来了一些新的函数
- reactive
- watchEffect
- computed
- ref
- toRefs
- hooks
reactive
相当于 Vue2.x 的 Vue.observable () API 经过 reactive 处理后的函数能变成响应式的数据,类似之前写模板页面时定义的 data 属性的值
import { reactive } from "vue";
export default {
setup() {
const state = reactive({
a: 0,
});
function increment() {
state.a++;
}
return {
state,
increment,
};
},
};
watchEffect
副作用 立即执行传入的一个函数,并响应式追踪其依赖,并在其依赖变更时重新运行该函数。computed
computed 在 Vue2.x 就存在
import { reactive, computed } from "vue";
export default {
setup() {
const state = reactive({
a: 0,
});
const double = computed(() => state.a * 2);
function increment() {
state.a++;
}
return {
double,
state,
increment,
};
},
};
ref
和toRefs
toRefs 提供了一个方法可以把 reactive 的值处理为 ref,也就是将响应式的对象处理为普通对象。
- hooks 相关的变化
Vue2.x 的生命周期 |
Vue3.x 的生命周期 |
---|---|
beforeCreate |
setup |
create |
setup |
beforeMount |
onBeforeMount |
mounted |
onMounted |
beforeUpdate |
onBeforeUpdate |
updated |
onUpdated |
beforeDestroy |
onBeforeUnmount |
destroyed |
onUnmounted |
errorCaptured |
onErrorCaptured |
- 新增属性 Vue3.0 在 Composition API 中另外加了两个钩子,分别是 onRenderTracked 和 onRenderTriggered,两个钩子函数都接收一个 DebuggerEvent :
export default {
onRenderTriggered(e) {
// 检查依赖性触发组件重新渲染
},
};
- Flash/Flex学习笔记(56):矩阵变换
- js小技巧:tab页切换
- c#字符串操作方法实例
- Android中Fragment+ViewPager的配合使用
- 结合机器学习与生物医学技术,寻找Uber司机出行模式
- ASP.NET MVC 4 - 测试驱动 ASP.NET MVC
- LVS+Keepalived高可用环境部署梳理(主主和主从模式)
- 随着区块链的火爆,相关顶级域名“矿池”KC.com已建站
- Flash/Flex学习笔记(50):3D线条与填充
- LVM常规操作记录梳理(扩容/缩容/快照等)
- Flash/Flex学习笔记(55):背面剔除与 3D 灯光
- 资源等待类型sys.dm_os_wait_stats
- NVIDIA不再允许数据中心用GeForce驱动,提供区块链服务除外
- 非常强悍并实用的双机热备+负载均衡线上方案
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Centos7 Nginx的SSL证书安装
- 算法集锦(11)| 自动驾驶 | 基于HOG和SVM的车辆识别算法
- 剑指offer(一):找出数组中重复的数字
- 剑指offer(二):不修改数组找出重复的数字
- 漫画:什么是树状数组?
- poiAndEasyExcel学习(五)
- 两分钟真能搞懂桶排序
- SpringMVC文件上传下载
- 学弟不懂原码反码补码,气的我给女朋友讲了一夜
- 使用 HanLP 统计二元语法中的频次
- 算法集锦(13)|自然语言处理| Python代码的语义搜索引擎创建
- 特征锦囊:彻底了解一下WOE和IV
- Nginx专辑|05 -如何使用Nginx配置正向代理
- 详解 SIGHAN05 的目录结构
- 工业数据分析之数据归一化 | 冰水数据智能专题 | 2nd