Vue3的新特性

news/2024/11/24 1:58:19/

Vue3
为什么要使用 Vue3

1 . 更好的 逻辑复用 与 代码组织 ( composition 组合式 api )

    Vue3 之前使用的是 optionsAPI(选项式API)
    Vue3 使用的是 compositionAPI(组合式API)
    优点 : 代码组织更方便了, 逻辑复用更方便了 非常利于维护!!

2 . 更好的 检测类型 ( 类型推导 Typescript 支持 )

    类型推导 : 就是在没有明确指出类型的变量,TypeScript 编译器会自动推测变量的类型。
    Vue3 源码用 TypeScript 写的 ( TypeScript 可以让代码更加稳定, 更好的检测类型! )

Vue3 新特性

1 . 数据响应式 原理重新实现 ( ES6 的 proxy 替代了 ES5 的 Object.defineProperty)

    解决了对象、数组更新后的检测, 大大优化了响应式监听的性能
    原来检测对象属性的变化, 需要一个个对属性递归监听, proxy 可以直接对整个对象劫持

2 . 虚拟 DOM - 新算法 (更快 更小)

3 . 提供了 composition api, 可以更好的逻辑复用

4 . template 模板可以有多个根元素

5 . 源码用 typescript 重写, 有更好的 类型推导 (类型检测更为严格, 更稳定)

小结: vue3 性能更高, 体积更小, 更利于复用, 代码维护更方便
Composition API
options API

vue2 采用的就是 optionsAPI

优点 : 易于学习和使用, 每个代码有着明确的位置

    例如 : 数据放 data 中, 方法放 methods 中

缺点 : 相似的逻辑, 不容易复用, 在大项目中尤为明显

注意 : 虽然 optionsAPI 可以通过 mixins 提取相同的逻辑, 但是并不好维护
Composition API

vue3 新增的就是 compositionAPI

    compositionAPI 是基于 逻辑功能 组织代码的, 一个功能 api 相关放到一起

    即使项目大了, 功能多了, 也能快速定位功能相关的 api

    大大的提升了 代码可读性 和 可维护性

注意 : vue3 推荐使用 composition API, 也保留了 options API

    即就算不用 composition API, 用 vue2 的写法也 完全兼容

setup 函数

composition 的使用, 需要配置一个 setup 函数

setup 函数特点

    setup 函数是一个新的组件选项, 作为组件中 compositionAPI 的起点
    从生命周期角度来看, setup 会在 beforeCreate 钩子函数之前执行
    在 template 模版中需要使用的数据和函数,需要在 setup 返回

使用:

<script>
export default {setup () {console.log('setup执行了')console.log(this) // undefined// 定义数据和函数const msg = 'hi vue3'const say = () => {console.log(msg)}return { msg , say}},beforeCreate() {console.log('beforeCreate执行了')console.log(this)}
}
</script>

template 中使用:

<template><div><h1 @click="say()">{{msg}}</h1></div>
</template>

注意 : setup 中不能使用 this, this 指向 undefined


http://www.ppmy.cn/news/36722.html

相关文章

【Java 数据结构与算法】-Map和Set的OJ题

作者&#xff1a;学Java的冬瓜 博客主页&#xff1a;☀冬瓜的主页&#x1f319; 专栏&#xff1a;【Java 数据结构与算法】 内容&#xff1a;1、只出现一次的数字 4、复制带随机指针的链表 5、石头里选出宝石 6、坏键盘打字 文章目录一、正确选择Map和Set的实现类示例1、统计10…

美国CPC证书(儿童产品证书)详细解答

儿童产品证书&#xff08;Children’s Product Certificate, CPC&#xff09;适用于所有以12岁及以下儿童为主要目标使用对象的产品&#xff0c;如玩具、摇篮、儿童服装等&#xff0c;如在美国本地生产则由制造商负责提供&#xff0c;如在其他国家生产则由进口商负责提供。也就…

篇章八 Git 详细使用说明

我的github:https://github.com/zhuhukang/gitskills廖雪峰学习文档:https://www.liaoxuefeng.com/wiki/896043488029600/900375748016320中文文档:https://docs.github.com/cn/get-started/quickstart/hello-world图形化学习网址:https://learngitbranching.js.orgGit : …

从数据到智慧,TOOM舆情监测系统让你的决策更加精准!

当今社会信息化程度日益提高&#xff0c;网络平台已成为人们获取最新信息的主要途径&#xff0c;无论是个体还是组织、政府还是企业&#xff0c;都需要通过各种手段及时了解社会舆情&#xff0c;把握市场动态&#xff0c;调整经营策略。而舆情监测系统无疑是这些手段中最为有效…

念一句咒语 AI 就帮我写一个应用,我人麻了...

原文链接&#xff1a;https://forum.laf.run/d/232 作为人类&#xff0c;我们时常会有自己独特的想法和脑洞大开的创意。然而&#xff0c;这些想法往往因为成本过高而无法实现&#xff0c;毕竟每个人的能力和精力都是有限的&#xff0c;尤其是对于程序员而言&#xff0c;不可能…

大数据开发语言Scala(二)——集合的基本属性和常用操作

一、集合简介1.1 集合简介​1&#xff09;Scala的集合有三大类&#xff1a;序列Seq、集Set、映射Map&#xff0c;所有的集合都扩展自Iterable特质。2&#xff09;对于几乎所有的集合类&#xff0c;Scala都同时提供了可变和不可变的版本&#xff0c;分别位于以下两个包不可变集合…

.NET CORE 3.1 继承JWT鉴权和授权

官网&#xff1a;JSON Web Tokens - jwt.ioJSON Web Token (JWT) is a compact URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is digitally signed using JSON Web Signature (JWS).…

线程安全、线程同步(同步代码块、同步方法、同步锁)

一. 线程安全 1.1 线程安全问题是什么&#xff0c;发生的原因 多个线程同时修改同一共享资源的时候&#xff0c;会出现线程安全问题。读数据是绝对不会出现线程安全问题的&#xff0c;它一定是因为同时在修改。一旦线程同步了&#xff0c;就是解决了安全问题了。CPU负责调度线…