前端入门(五)Vue3与TypeScript

news2025/1/11 22:43:35

文章目录

  • Vue3简介
    • 创建Vue3工程
      • 使用vite创建
      • vue-cli方式
  • 常用 Composition API
    • 安置项 - setup
      • setup的执行时机与参数
    • 响应式原理
      • vue2中的响应式
      • vue3中的响应式
      • ref函数
      • reactive函数
      • reactive与ref对比

Vue3简介

Vue3带来了:

  • 1、性能的提升:
    • 打包大小减少41%
    • 初次渲染快55%, 更新渲染快133%
    • 内存减少54%
    • ……
  • 2、源码的升级
    • 使用Proxy代替defineProperty实现响应式
    • 重写虚拟DOM的实现和Tree-Shaking
  • 3、拥抱TypeScript
  • 4、新的特性
      1. Composition API(组合API) (用前要引入)
        ○ setup配置
        ○ ref与reactive
        ○ watch与watchEffect
        ○ provide与inject
        ○ …
      1. 新的内置组件
        ○ Fragment
        ○ Teleport
        ○ Suspense
      1. 其他改变
        ○ 新的生命周期钩子
        ○ data 选项应始终被声明为一个函数
        ○ 移除keyCode支持作为 v-on 的修饰符
        ○ …

创建Vue3工程

使用vite创建

官方文档:https://v3.cn.vuejs.org/guide/installation.html#vite

vite官网:https://vitejs.cn

  • 什么是vite?—— 新一代前端构建工具。
  • 优势如下:
    • 开发环境中,无需打包操作,可快速的冷启动。
    • 轻量快速的热重载(HMR)。
    • 真正的按需编译,不再等待整个应用编译完成。
  • 传统构建 与 vite构建对比图

在这里插入图片描述
在这里插入图片描述

vue-cli方式

VUE3官方文档

## 查看@vue/cli版本,确保@vue/cli版本在4.5.0以上
vue --version
## 安装或者升级你的@vue/cli
npm install -g @vue/cli
## 创建
vue create vue_test
## 启动
cd vue_test
npm run serve

在这里插入图片描述

常用 Composition API

安置项 - setup

setup是所有Composition AIP(组合API)“表演的舞台”。

  • 1、组件中所用到的:数据、方法等均要配置在setup中,不需要专门的datamethods等配置项了。
  • 2、setup函数的两种返回值:
    • 若返回一个对象,则对象中的属性、方法在模板中均可以直接使用。
    • 若返回一个渲染函数:则可以自定义渲染内容。(了解)

在这里插入图片描述
在这里插入图片描述

setup的执行时机与参数

响应式原理

vue2中的响应式

在vue2中,通过Object.defineProperty()对对象属性的读取、修改进行了拦截(数据劫持)。对数组类型,通过重写数组更新的一系列方法实现拦截,对其变更方法进行了包裹。

这种响应式实现存在以下问题:

  • 新增属性、删除属性,界面不会更新
  • 直接通过下标修改数组,界面不会自动更新。

vue3中的响应式

  • 1、通过Proxy(代理):拦截对象中任意属性的变化,包含属性值的读写、属性的添加、属性的增删
  • 2、通过Reflect(反射):对被代理对象的属性进行操作

ref函数

在setup中安置的数据项并不会直接被vue监测,如果想要使其被vue监测,实现响应式的更新,应该使用ref函数,其作用是定义一个响应式的数据的引用对象(reference object)

使用ref函数构建的数据项类型是一个RefImpl引用实现类型,对RefImpl对象的value属性更新,对于Vue框架是可见的,但在模板中使用其时,不必加value属性,Vue框架会自动解析到其中的value。
在这里插入图片描述
ref函数的参数也可以是一个对象,如果是对象,其value属性是一个Proxy对象,拥有原对象的每一个属性,对其的修改也是响应式的。
在这里插入图片描述

reactive函数

reactive函数的作用是定义一个对象(数组)类型的响应式数据,基本类型用refreactive只能处理对象类型的数据。

语法:const 代理对象 = reactive(源对象)接收一个对象或数组,返回其代理对象(Proxy实例)

reactive定义的响应式数据是深层次的,即对其多层数据的更改同样是响应式。

在这里插入图片描述

reactive与ref对比

1、从定义数据角度:

  • ref用于定义基本数据类型
  • reactive用来定义:对象或者数组类型
  • ref也可以用来定义对象(数组)类型数据,它内部会自动通过reactive转为代理对象。
    2、从原理角度:
  • ref通过Object.defineProperty()的get与set实现响应式(数据劫持)
  • reactive通过使用Proxy实现响应式,并通过Reflect操作源对象内部的数据。

3、从使用角度:

  • ref定义的数据,操作数据需要.value,模板使用不需要.value
  • reactive定义的数据:操作数据与模板使用均不需要.value

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

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

相关文章

EDA实验-----正弦信号发生器的设计(Quartus II )

目录 一、实验目的 二、实验仪器 三、实验原理 四、实验内容 五、实验步骤 六、注意事项 七、实验过程(操作过程) 1.定制LPM_ROM模块 2.定制LPM_ROM元件 3.计数器定制 4.创建锁相环 5.作出电路图 6.顶层设计仿真 一、实验目的 学习使用Ver…

不同领域文章一键采集,全网关键词文章采集工具

不同领域的从业者、学生、研究者等都可能需要大量的文章来支持他们的工作和学术研究。然而,手动搜索和整理这些文章费时费力,这个时间大家就会借助全网文章采集工具,只需要输入关键词,就能够采集大量相关文章,为大家提…

利用异或、取反、自增bypass_webshell_waf

目录 引言 利用异或 介绍 eval与assert 蚁剑连接 进阶题目 利用取反 利用自增 引言 有这样一个waf用于防御我们上传的文件: function fun($var): bool{$blacklist ["\$_", "eval","copy" ,"assert","usort…

vue3动态加载音频文件,用于不同场景加载不同的文件

本文主要介绍如何在vue3中动态加载音频文件。 目录 前言静态加载动态加载import函数watch函数使用watch函数和import函数动态加载音频文件 前言 在vue3中,我们通常使用import xxx from xxxxxx来加载文件,但是如果我们需要加载哪些文件,是需要…

如何使用住宅IP配置 Postman

Postman是一个用于方便进行网站测试的HTTP客户端。通过它,用户可以配置不同复杂度的HTTP请求,并将它们保存在数据库中以便将来重复使用。你可以连接代理到Postman,使其在进行测试时变得匿名和更安全。下面将详细说明如何在这个程序中配置代理…

RS-232串口芯片静电保护TVS管选择

RS-232串口芯片静电保护TVS管选择 RS-232接口是现在主流的串行通信接口之一,符合美国电子工业联盟制定的串行数据通信的接口标准,原始编号全称为EIA-RS-232(简称232和RS-232),广泛应用于计算机串行接口外设连接&#…

Pytorch-gpu环境篇

最最最头疼的就是配环境了 包之间的版本匹配问题 INSTALLING PREVIOUS VERSIONS OF PYTORCH 要考虑到pytorch和torchvision之间的匹配关系 显卡版本匹配问题

AI知识库:智能化的知识管理

随着人工智能技术的不断发展,越来越多的企业开始关注如何利用AI技术提升业务运营效率。其中,AI知识库作为一种智能化的知识管理工具,已经在各行各业得到了广泛的应用。接下来就探讨一下AI知识库是如何帮助企业实现智能化知识管理的。 | 一、A…

【Linux】快速上手自动化构建工具make/makefile

👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》 🌝每一个不曾起舞的日子,都是对生命的辜负 目录 前言 1.什么是make / makefile 2…

【Windows】内网穿透实现hMailServer远程发送邮件

目录 前言1. 安装hMailServer2. 设置hMailServer3. 客户端安装添加账号4. 测试发送邮件5. 安装cpolar6. 创建公网地址7. 测试远程发送邮件8. 固定连接公网地址9. 测试固定远程地址发送邮件 前言 hMailServer 是一个邮件服务器,通过它我们可以搭建自己的邮件服务,通过cpolar内网…

window环境同时安装python2和python3

背景 在日常环境中,有时候要用到python2写的代码要用Python2执行,有时候python3的代码要用到python3执行.很多人需要同时让Python2和python3的命令都可以用。方便切换环境。 需求 有一些项目需要Python2环境。用的时候就使用 python2 .\1.py 有一些项…

人工智能原理复习--确定性推理

文章目录 上一篇推理概述自然演绎推理合适公式 归结演绎推理归结原理归结反演 提升归结效率下一篇 上一篇 人工智能原理复习–知识表示(二) 推理概述 推理就是按某种策略由已知判断推出另一判断的思维过程 分类: 演绎推理、归纳推理、默…

单页应用的架构与设计:打造高效可扩展的 Web 应用(上)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

『运行心得』机柜断电事件的排除与解决

本文描述了一起机房机柜断电事件引发的故障排除和解决过程。 当办公楼机房发生断电后,经过排查发现可能是空气开关短路导致。尽管重新合上空气开关后设备恢复正常,但断电事件再次发生,电工怀疑空气开关老化导致电路故障,并将电源…

python 实现链表

链表基础知识 链表是在物理内存中不连续,数据通过链表中的指针来链接到下一个元素。 链表由一系列节点组成,节点在运行时动态生成,节点一般包括两个部分:存储数据的数据域,存储下一个节点的指针域 链表的常用操作&a…

使用Docker安装部署Swagger Editor并远程访问编辑API文档

文章目录 Swagger Editor本地接口文档公网远程访问1. 部署Swagger Editor2. Linux安装Cpolar3. 配置Swagger Editor公网地址4. 远程访问Swagger Editor5. 固定Swagger Editor公网地址 Swagger Editor本地接口文档公网远程访问 Swagger Editor是一个用于编写OpenAPI规范的开源编…

基于pyltp的依存句法分析

代码是两年多前网上找的,能运行。先记在这里,以防以后用到 import os from pyltp import Segmentor, Postagger, Parser, NamedEntityRecognizer, SementicRoleLabeller # pip install pyltp -i https://pypi.tuna.tsinghua.edu.cn/simple 可以先下载好…

Shopee买家通系统,智能下单新体验

Shopee买家通系统带来了一场智能下单的革命,为用户提供了更便捷的购物体验。通过简单的准备工作,您即可使用该系统完成自动下单,省去繁琐步骤,轻松实现购物愉悦。 账号准备,注册无忧 首先,准备一个具备下单…

C++的编译链接

文章目录 1、前置条件2、预处理/预编译2、编译3、汇编5、链接 1、前置条件 # 操作系统版本 cat /proc/version Linux version 3.10.0-1160.95.1.el7.x86_64 (mockbuildkbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Mon Jul 24 …

iOS 开发高效率工具包:10 大必备工具

​ 作为 iOS 开发人员,拥有合适的工具可以极大地提高您的工作效率和工作质量。无论您是刚刚起步还是已经开发 iOS 应用程序多年,以下是每个 iOS 开发人员都应该了解的 10 大必备工具。 让我们开始 Xcode Xcode 是用于 iOS 开发的官方 IDE(…