Vue3带来了什么

news2024/10/6 14:36:05

目录

    • 性能方面的优化
    • 更好的TypeScript集成
    • 用于处理大规模用例的新API
    • 分层内部模块
    • CompositionAPI
    • 更多RFC
    • 提供的两个新功能
    • proxy代替defineProperty
    • 双向绑定

性能方面的优化

首先是相对Vue2的一些性能改进:

  • 通过摇树(减轻了多达41%的资源大小)
  • 初始渲染(加快了多达55%的速度)
  • 更新速度:(加快了133%的速度)
  • 内存占用:(最多减少54%)

其次还带来一些新的的优化,简单总结下

  • 路由懒加载
  • keep-alive缓存页面
  • 使用v-show复用DOM
  • v-for 遍历避免同时使用 v-if
  • 长列表性能优化
  • 事件的销毁
  • 图片懒加载
  • 第三方插件按需引入
  • 无状态的组件标记为函数式组件
  • 子组件分割
  • 变量本地化
  • SSR

更好的TypeScript集成

  • 改进的TypeScript支持,编辑器能提供强有力的类型检查和错误及警告
  • 更好的调试支持

用于处理大规模用例的新API

  • reactive
  • ref
  • computed
  • readonly
  • watchEffect
  • watch
  • unref
  • toRef
  • toRefs
  • isRefis
  • Proxy
  • isReactive
  • isReadonly
  • customRef
  • markRaw
  • shallowReactive
  • shallowReadonly
  • shallowRef
  • toRaw

分层内部模块

Vue 3.0内核仍然可以通过一个简单的script标签使用,但其内部结构已被彻底重写为一组解耦的模块。新的体系结构提供了更好的可维护性,并允许最终用户通过摇树来减少运行时大小的一半。

模块提供的功能点:

  • 编译器支持用于构建时自定义的自定义AST转换(例如,构建时i18n)
  • 核心运行时提供API用于创建针对不同渲染目标(例如本机移动设备,WebGL或终端)的自定义渲染器。默认DOM渲染器使用相同的API构建。
  • 该@vue/reactivity模块导出的功能可以直接访问Vue的反应系统,并且可以用作独立程序包。它可以与其他模板解决方案(例如lit-html)配对,甚至可以用于非UI方案。

CompositionAPI

composition-api,旨在解决大型应用程序中Vue使用的难点。是Vue3.0最重要的RFC(官方文档)原来叫vue-function-api。

Composition API建立在反应性API之上,与2.x基于对象的API相比,可实现类似于React挂钩的逻辑组成和重用,更灵活的代码组织模式以及更可靠的类型推断。

<template>
  <button @click="increment">
    Count is: {{ state.count }}, double is: {{ state.double }}
  </button>
</template>

<script>
import { reactive, computed } from 'vue'

export default {
  setup() {
    const state = reactive({
      count: 0,
      double: computed(() => state.count * 2)
    })

    function increment() {
      state.count++
    }

    return {
      state,
      increment
    }
  }
}
</script>

主要改动点

  • 新增setup函数: 等价于created和beforeCreated,props被初始化后调用
  • 数据用reactive实现双向绑定,你可以决定是否绑定一个数据
  • watch支持中止,节省性能开销
  • 生命周期钩子和原来差不多
  • 全局方法分散导出,减少包大小
  • 函数式api:对ts友好,组合函数复用代替mixin
  • 暴露了更多api,变得更加灵活

更多RFC

还有一些其它的RFC,相对比较小的变动,例如:

  • render方法改写
  • 删除filters
  • slot语法改写
  • transition语法变更

提供的两个新功能

//<script setup>:用于在SFC中使用Composition API的语法糖
//<style vars> :SFC中状态驱动的CSS变量

proxy代替defineProperty

双向绑定

Vue2.0双向绑定

  • observer遍历对象,在getter/setter方法中拦截对对象属性的读写操作
  • 对象拦截:可拦截对象属性更改,不能拦截对象属性增删
  • 数组拦截:通过重写prototype,可拦截7种数组方法,不能拦截数组直接赋值、长度变更

    Vue3.0双向绑定
  • proxy支持劫持对象的属性增删和数组的索引操作
  • 对比Vue2.0对data递归劫持数据,Vue3提供reactive等方法自定义响应式数据,节省内存开销
  • IE11兼容性问题,vue会提供兼容版本

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/410925.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Hadoop安装Hbase启动失败报错解决方法

先进入hbase文件目录里看日志文件看看报什么错再具体解决&#xff1a; vim /opt/module/hbase-1.3.3/logs/hbase-root-master-hadoop-single.log 1.报错org.apache.hadoop.security.AccessControlException: Permission denied: user异常解决方法 1、第一种 在hdfs的配置文件…

3.2 二维随机变量的边缘分布

思维导图&#xff1a; 学习目标&#xff1a; 要学习二维随机变量的边缘分布&#xff0c;我可能会按照以下步骤进行学习&#xff1a; 理解二维随机变量的概念和表示方法&#xff0c;包括联合分布函数和联合分布律等概念。理解二维随机变量的边缘分布的概念和意义&#xff0c;即…

2023年4月份北京/广州/深圳DAMA-CDGP数据治理专家证书收益

DAMA认证为数据管理专业人士提供职业目标晋升规划&#xff0c;彰显了职业发展里程碑及发展阶梯定义&#xff0c;帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力&#xff0c;促进开展工作实践应用及实际问题解决&#xff0c;形成企业所需的新数字经济下的核心职业…

Mysql的学习与巩固:一条SQL查询语句是如何执行的?

前提 我们经常说&#xff0c;看一个事儿千万不要直接陷入细节里&#xff0c;你应该先鸟瞰其全貌&#xff0c;这样能够帮助你从高维度理解问题。同样&#xff0c;对于MySQL的学习也是这样。平时我们使用数据库&#xff0c;看到的通常都是一个整体。比如&#xff0c;你有个最简单…

【华为机试真题详解JAVA实现】—MP3光标位置

目录 一、题目描述 二、解题代码 一、题目描述 MP3 Player因为屏幕较小,显示歌曲列表的时候每屏只能显示几首歌曲,用户要通过上下键才能浏览所有的歌曲。为了简化处理,假设每屏只能显示4首歌曲,光标初始的位置为第1首歌。 现在要实现通过上下键控制光标移动来浏览歌曲列…

[2022 SP] Copy, Right? 深度学习模型版权保护的测试框架

Copy, Right? A Testing Framework for Copyright Protection of Deep Learning Models | IEEE Conference Publication | IEEE Xplore 摘要 深度学习模型&#xff0c;尤其是那些大规模和高性能的模型&#xff0c;训练成本可能非常高&#xff0c;需要大量的数据和计算资源。…

DDS介绍

今天我们一起来了解一个中间件协议框架DDS&#xff0c;它的全称是Data Distribution Service&#xff0c;是一套通信协议和API标准&#xff0c;提供了以数据为中心的连接服务&#xff0c;基于发布者-订阅者模型&#xff0c;提供了介于操作系统和应用程序之间的功能&#xff0c;…

【数据结构】二叉树性质巩固

&#x1f680;write in front&#x1f680; &#x1f4dc;所属专栏&#xff1a;初阶数据结构 &#x1f6f0;️博客主页&#xff1a;睿睿的博客主页 &#x1f6f0;️代码仓库&#xff1a;&#x1f389;VS2022_C语言仓库 &#x1f3a1;您的点赞、关注、收藏、评论&#xff0c;是对…

Shell基础了解

一.Shell简介 Shell 是一个用 C 语言编写的程序&#xff0c;它是用户使用 Linux 的桥梁。Shell 既是一种命令语言&#xff0c;又是一种程序设计语言。 Shell 是指一种应用程序&#xff0c;这个应用程序提供了一个界面&#xff0c;用户通过这个界面访问操作系统内核的服务。 Ken…

JavaScript【二】JavaScript中的流程控制

文章目录&#x1f31f;前言&#x1f31f;流程控制&#x1f31f;选择结构(条件判断)&#x1f31f;if分支&#x1f31f; switch 分支(多选一的条件判断)&#x1f31f;循环结构&#x1f31f;for&#x1f31f;while&#x1f31f; do...while&#x1f31f;区别&#x1f31f;break和c…

从元宇宙婚礼和元宇宙游戏看元宇宙的“史前时代”

元宇宙&#xff0c;正在从科幻走进现实——确切地说&#xff0c;是走进现实中的虚拟世界。这一切&#xff0c;离不开强有力的高科技及其产品化基础设施设备的支撑。而且&#xff0c;元宇宙不会单由哪一家公司建成&#xff0c;也不会一蹴而就&#xff0c;它需要多方参与和一定的…

外包干了三年,算是废了...

先说一下自己的情况。大专生&#xff0c;19年通过校招进入湖南某软件公司&#xff0c;干了接近3年的测试&#xff0c;今年年上旬&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落&#xff01;而我已经在一个企业干了三年&#xff0c…

C语言基础——数组与字符串

文章目录一、数组1.数组的意义2.数组类型如何表示3.数组变量的定义3.1求数组类型大小3.2数组的长度4.数组中成员的使用4.1数组的下标4.2如何表示数组成员5.常见问题6.冒泡排序7.字符数组 字符类型数组7.1定义7.2物联网 -- 服务器/web -- 上层使用大多是字符串。7.3定义1个字符型…

javaweb考研辅导网站交流

设计内容&#xff1a; 前台技术&#xff1a;html/css/javascript。 后台技术&#xff1a;java/jspServlet/struts2框架。 数据库技术&#xff1a;mysql。 具体功能模块主要包括&#xff1a; 1、考研浅谈&#xff1a;专业不同的热心的考研成功者能够发布不同科目的复习心得等。…

JavaScript 基础入门速成下篇

JavaScript 高级 数组及操作方法 数组&#xff0c;即一组数据的集合&#xff0c;JavaScript中&#xff0c;数组里面的数据可以时不同类型的&#xff1b; 定义数组的方法 1. 对象实例创建 new Array 2. 直接量创建 // 对象实例创建 var arr new Array(1,2,3)// 直接量…

4.11每日一题

翀某说&#xff1a;C语言快忘了&#xff0c;决定每日一练&#xff0c;周末超难度训练 当然了翀某说&#xff0c;python自学中&#xff0c;所以每道题除了C语言之外&#xff0c;看看python能不能写 题目给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组…

入门前端框架Layui

&#x1f3ed; 作者&#xff1a;哈桑c&#xff08;CSDN平台&#xff09; ⛺️ 专栏&#xff1a;前端自学记录 文章目录文章简介说在前面的话需要具备的基础1、Layui 的介绍2、Layui 的下载和使用3、Layui 示例4、Layuimini layui-vue结语文章简介 本文为大家介绍前端 UI 组件…

【Linux】进程概念二

文章目录进程概念二1. 进程状态2. 进程状态查看3. 僵尸进程3.1 僵尸进程的危害4. 孤儿进程5. 环境变量5.1 常见环境变量5.2 查看环境变量的方法5.3 测试PATH5.4 环境变量相关的命令5.5 环境变量的组织方式5.6 通过代码获取环境变量6. 程序地址空间7. 进程地址空间8. 扩展8.1 为…

前端学习路线(2023版)超详细

一&#xff1a;前端开发基本功 俗话说的好“不积跬步&#xff0c;无以至千里”&#xff0c;学习也是一样的从简单的基础的知识点开始慢慢积累&#xff0c;首先就是掌握前端语言的基础知识3大部分&#xff08;HTML、CSS、页面制作工具&#xff09;其中包含了元素和属性、表单和图…

Adobe 中国

Adobe中国是Adobe公司在中国设立的分支机构&#xff0c;其总部位于上海。 Adobe中国的主要业务包括销售Adobe公司的软件产品、提供技术支持和服务、开展市场推广和宣传等工作。 作为全球领先的创意设计软件提供商&#xff0c;Adobe中国向中国用户提供了一系列功能强大的软件产…