Vue3组合式API详解 - 大型应用的高端写法

news2024/9/25 17:12:50

目录

  • 01-setup方法与script_setup及ref响应式
  • 02-事件方法_计算属性_reactive_toRefs
  • 03-生命周期_watch_watchEffect
  • 04-跨组件通信方案provide_inject
  • 05-复用组件功能之use函数
  • 06-利用defineProps与defineEmits进行组件通信

01-setup方法与script_setup及ref响应式

  • 在Vue3.1版本的时候,提供了setup方法;而在Vue3.2版本的时候,提供了script_setup属性
    • setup方法是需要把数据进行return后,才可以在template标签中进行使用。
    • setup属性方式定义好后就可以直接在template标签中进行使用。在这里插入图片描述
  • ref响应式
    • 在组合式API中来完成数据的响应式操作,通过的就是ref()方法,需要从vue模块中引入这个方法后才可以使用。
      在这里插入图片描述
    • count数据的修改,需要通过count.value的方式,因为vue底层对响应式数据的监控必须是对象的形式,所以我们的count返回的并不是一个基本类型,而是一个对象类型,所以需要通过count.value进行后续的操作
    • ref()方法还可以关联原生DOM,通过标签的ref属性结合到一起,也可以关联到组件上
      在这里插入图片描述

02-事件方法_计算属性_reactive_toRefs

  • 在组合式API中实现事件方法和计算属性
    在这里插入图片描述
  • reactivetoRefs
    • reactive()方法是组合式API中另一种定义响应式数据的实现方式,它是对象的响应式副本
      在这里插入图片描述
  • ref()reactive()这两种方式都是可以使用的,一般ref()方法针对基本类型的响应式处理,而reactive()针对对象类型的响应式处理,当然还可以通过toRefs()方法把reactive的代码转换成ref形式
    在这里插入图片描述

03-生命周期_watch_watchEffect

  • 生命周期对比
    在这里插入图片描述

  • watchEffect 函数

    • 它立即执行传入的一个函数,同时响应式追踪其依赖,并在其依赖变更时重新运行该函数。
  • watchEffect常见特性:

    • 一开始会初始触发一次,然后所依赖的数据发生改变的时候,才会再次触发
    • 触发的时机是数据响应后,DOM更新前,通过flush: ‘post’ 修改成DOM更新后进行触发
    • 返回结果是一个stop方法,可以停止watchEffect的监听
    • 提供一个形参,形参主要就是用于清除上一次的行为
      在这里插入图片描述
  • watch侦听器的使用方式:
    在这里插入图片描述

  • watchwatchEffect的区别是什么呢?

    • 懒执行副作用
    • 更具体地说明什么状态应该触发侦听器重新运行
    • 访问侦听状态变化前后的值

04-跨组件通信方案provide_inject

  • 依赖注入

    • 在Vue中把跨组件通信方案provide_inject也叫做依赖注入的方式
      在这里插入图片描述
  • 依赖注入使用的时候,需要注意的点:

    • 不要在inject中修改响应式数据,可利用回调函数修改
    • 为了防止可设置成 readonly

05-复用组件功能之use函数

为了更好的组合代码,可以创建统一规范的use函数,从而抽象可复用的代码逻辑。利用use函数可以达到跟mixin混入一样的需求,并且比mixin更加强大
在这里插入图片描述
通过useCounter函数的调用,就可以得到内部return出来的对象,这样就可以在.vue文件中进行功能的使用,从而实现功能的复用逻辑。

06-利用defineProps与defineEmits进行组件通信

  • defineProps是用来完成父子通信的,基本使用跟选项式中的props非常的像
    在这里插入图片描述
  • defineEmits是用来完成子父通信的,基本使用跟选项式中的emits非常的像
    在这里插入图片描述

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

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

相关文章

图片怎么转换成pdf格式?可以试试这样转换

图片怎么转换成pdf格式?图片转换成PDF格式是一个常见的需求,无论是为了方便存储还是为了分享文件,将图片转换成PDF格式都是一个不错的选择。有许多软件和在线工具可以帮助你完成这个任务,下面就给大家介绍一款转换工具。 【迅捷PD…

中期国际:MT4交易平台介绍:功能、优势与适用范围

在外汇市场中,MetaTrader 4(简称MT4)被广泛认可为最受欢迎的交易平台之一。它具备丰富的功能和独特的优势,不仅适用于个人零售交易者,也广泛应用于金融机构和专业交易员。本文将介绍MT4交易平台的关键功能、独有优势以及适用范围。 首先&…

隔断让你的办公室变得更加智能、环保、人性化

隔断可以在办公室中起到多种重要作用,使办公室更加智能、环保和人性化。以下是一些可能的方式: 1. 智能办公室控制系统:可以通过隔断集成智能办公室控制系统,实现办公室照明、温度和空调等设备的自动调节,提高能效和舒…

Linux系统下检验Tensorflow 2.xx版本和1.xx版本是否安装成功

目录 版本问题Tensorflow 1.xx的测试代码:Tensorflow 2.xx的测试代码:Tensorflow 2.6版本实际的测验结果 总结 版本问题 查询资料发现,多数检验Tensorflow是否安装成功的方法,多数方法都是1.xx版本的,直接使用1.xx版本…

【Linux】IO模型

【Linux】IO模型 文章目录 【Linux】IO模型1、模型概念1.1 IO概念1.2 模型应用 2、模型种类2.1 阻塞IO2.2 非阻塞IO2.3 信号驱动IO2.4 IO多路转接2.5 异步IO 3、概念对比3.1 同步、异步通信3.2 阻塞、非阻塞 4、fcntl4.1 函数原型4.2 指令参数4.3 实现非阻塞IO 5、IO多路转接5.…

AlmaLinux 向红帽示好,被拒绝了

导读AlmaLinux 向红帽示好,被拒绝了。 红帽关闭 CentOS,推行 CentOS Stream 成为 RHEL 上游,其中一个理由是希望社区来参与 CentOS Stream/RHEL 的开发,并指责 AlmaLinux 等 RHEL 克隆品只是简单的重建,而没有做出任何…

6-模板初步使用

官网: 中文版: 介绍-Jinja2中文文档 英文版: Template Designer Documentation — Jinja Documentation (2.11.x) 模板语法 1. 模板渲染 (1) app.py 准备数据 import jsonfrom flask import Flask,render_templateimport settingsapp Flask(__name__) app.config.from_obj…

基于STM32的OLED多级菜单GUI实现(简化版智能手表)

前言:本文的OLED多级菜单UI为一个综合性的STM32小项目,使用多传感器与OLED显示屏实现智能终端的效果。项目中的多级菜单UI使用了较为常见的结构体索引法去实现功能与功能之间的来回切换,搭配DHT11,RTC,LED,…

git创建分支和合并分支

1.创建分支 git创建分支只需要使用switch 命令就行: git switch -c 分支名 创建分支并切换到该分支 后面括号里面的内容发生改变就是修改了分支 。 然后想要合并分支就在 创建的分支中 进行提交修改的内容,还是通过:add 命令和commit命令…

node没有自动安装npm时,如何手动安装 npm

之前写过一篇使用 nvm 管理 node 版本的文章,node版本管理(Windows) 有时候,我们使用 nvm 下载 node 时,node 没有自动下载 npm ,此时就需要我们自己手动下载 npm 1、下载 npm下载地址:&…

m3u8视频怎么保存到本地?这个小妙招了解下

m3u8是一种视频文件格式,通常用于流媒体服务,可以将大型视频文件分割成较小的TS分段进行传输,从而使得视频的传输更加流畅和高效。。m3u8文件包含了一个视频播放列表,其中包含了所有的TS分段的URL地址,以及每个分段的时…

暑期高铁站大量遗失物品,FindMy帮助寻找

近日,一女子在上海坐高铁时,将户口本、房产证遗落安检处的新闻引起网友的关注。然后业内人士表示:常事,车站什么都能捡到。 据中国铁路透露,暑运期间,上海虹桥站客流增加,日均发送旅客20多万人…

四川玖璨电商:2023怎样运营短视频?

​短视频的兴起和流行让越来越多的人关注和运营短视频号。如何运营短视频号,吸引更多的观众和粉丝?下面四川玖璨电商小编将介绍几个关键点。 首先,确定短视频的定位和主题非常重要。根据自己的兴趣和特长,确定一个独特的主题&…

通过远程访问解决家人的电脑难题

家里老人使用电脑、手机等设备遇到问题,子女在其他城市没法现场解决,远程沟通很困难。有没有一种方法可以随时远程帮助家人解决电脑、手机相关问题? 通过远程桌面软件,你可以与父母一起实时解决问题。这样他们就不会一遍遍给你打…

ARM开发(LED点灯实验)

1.汇编实现开发板三盏灯点亮熄灭&#xff1b; .text .global _start _start: /**********LED123点灯**************/RCC_INIT:1使能PE10 PF10 PE8RCC..寄存器,E[4]1 F[5]1 0x50000a28ldr r0,0x50000a28ldr r1,[r0]orr r1,r1,#(0x3 << 4)str r1,[r0]LED1_INET:2初始化LED…

三分钟上手! 一文看懂 Git 的底层工作原理

目录 1. 三分钟上手! 一文看懂 Git 的底层工作原理1.1. Git 目录结构1.2. Git 三大对象1.3. Git Brach 和 Tag 1. 三分钟上手! 一文看懂 Git 的底层工作原理 1.1. Git 目录结构 Git 的本质是一个文件系统(很重要, 记住这句话, 理解这句话), 工作目录中的所有文件的历史版本以…

跟随角色镜头时,解决地图黑线/白线缝隙的三种方案

下面一共三个解决方案&#xff0c;这里我推荐第二个方案解决&#xff0c;因为够快速和简单。 现象&#xff1a; 解决方案一&#xff1a; 参考【Unity2D】去除地图中的黑线_unity选中后有线_香菇CST的博客-CSDN博客&#xff0c;博主解释是因为抗锯齿采样导致的问题。 具体到这…

机器人操作系统:ROS2 仿真入门

塞巴斯蒂安 一、说明 在机器人项目中&#xff0c;仿真是一个具有多种用途的重要方面。首先&#xff0c;您可以测试希望机器人执行的行为代码。其次&#xff0c;您可以使用仿真来测试不同类型的硬件&#xff0c;例如距离传感器、相机或 3D 点云传感器&#xff0c;看看哪种效果最…