vue3-组件中的变化

news2024/12/21 20:04:18

1. 路由

1. 安装指令:npm i vue-router@next
2. 创建路由:createRouter

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

在这里插入图片描述

2. 异步组件(defineAsyncComponent)

  1. defineAsyncComponent 是用于定义异步组件的函数。
  2. defineAsyncComponent 接受一个工厂函数作为参数,这个工厂函数返回一个 Promise,用于异步加载组件。当组件需要被渲染时,Vue 3 会自动调用工厂函数来加载组件。
defineAsyncComponent 的属性:

3. loader: 一个工厂函数,用于加载异步组件。默认情况下,loader 函数会使用 import() 来加载组件。如果需要自定义加载逻辑,可以在此处指定自定义的加载函数。

4. delay: 指定组件加载的延迟时间,以毫秒为单位。在设置的延迟时间内,组件会显示一个占位符。如果未设置该属性,默认延迟时间为 200ms。

5. timeout: 指定组件加载的超时时间,以毫秒为单位。如果组件加载时间超过设置的超时时间,会触发 onError 钩子函数。如果未设置该属性,默认超时时间为 Infinity,即不会触发超时错误。

6. suspensible: 指定组件是否可挂起。如果设置为 true,在组件加载过程中,可以触发 onSuspense 钩子函数,并显示占位符。如果未设置该属性,默认为 true。

7. onError: 组件加载出错时的钩子函数。可以在此处处理组件加载出错的情况。

8. onSuspense: 组件挂起时的钩子函数。可以在此处处理组件挂起的情况。

9. loadingComponent  指定异步组件加载过程中显示的占位符组件(在组件为完成加载的时候就会调用这个属性)。可以是一个组件选项对象或一个组件的引用
 
10.errorComponent 属性来指定异步组件加载失败时显示的错误组件。 

<template>
  <div>
    <AsyncComponent />
  </div>
</template>

<script>
import { defineAsyncComponent } from 'vue';
import PlaceholderComponent from './components/PlaceholderComponent.vue';
import ErrorComponent from './components/ErrorComponent.vue';

// 定义异步组件
const AsyncComponent = defineAsyncComponent(() => {
  // 返回一个 Promise,用于异步加载组件
 () => import('./components/AsyncComponent.vue'),
 {
    // 配置选项
    loadingComponent: PlaceholderComponent, // 指定占位符组件
    errorComponent: ErrorComponent, // 指定错误组件
    delay: 200, // 延迟时间为 200ms
    timeout: 3000, // 超时时间为 3000ms
    suspensible: true, // 组件可挂起
    onError: (error) => {
      console.error('Error while loading component:', error);
    },
    onSuspense: () => {
      console.log('Component is suspended.');
    },
    // 也可以指定自定义的加载函数
    // loader: () => {
    //   return fetch('/api/async-component').then((res) => res.json());
    // },
});
</script>

Teleport

Teleport 是 Vue 3 中的一个新特性,用于在 DOM 中将组件的内容移动到指定的目标位置。它类似于 Vue 2 中的 ,但在 Vue 3 中进行了重命名。

<!-- ParentComponent.vue -->
<template>
  <div>
    <!-- 在 DOM 中指定一个目标位置,可以是一个已存在的元素,也可以是动态生成的元素 -->
    <div id="teleport-target"></div>

    <!-- 使用 Teleport 渲染组件的内容到指定目标位置 -->
    <teleport to="#teleport-target">
      <ModalComponent />
    </teleport>
  </div>
</template>

<script>
import { defineComponent } from 'vue';
import ModalComponent from './ModalComponent.vue';

export default defineComponent({
  components: {
    ModalComponent,
  },
});
</script>

在上述示例中,我们在 ParentComponent.vue 中使用 Teleport 组件将 ModalComponent 渲染到了 #teleport-target 这个目标位置中。#teleport-target 可以是已存在于 DOM 中的元素,也可以是通过动态生成的元素。

使用 Teleport 可以很方便地实现将组件的内容渲染到其他位置,而无需直接将内容嵌套在组件的模板中,从而提高了组件的灵活性和复用性。

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

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

相关文章

opencv-22 图像几何变换01-缩放-cv2.resize()(图像增强,图像变形,图像拼接)

什么是几何变换&#xff1f; 几何变换是计算机图形学中的一种图像处理技术&#xff0c;用于对图像进行空间上的变换&#xff0c;而不改变图像的内容。这些变换可以通过对图像中的像素位置进行调整来实现。 常见的几何变换包括&#xff1a; 平移&#xff08;Translation&#x…

力扣热门100题之无重复字符的连续子串【中等】

题目描述 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”&#xff0c;所以其长度为 3。 示例 2: 输入: s “bbbbb” 输出: 1 解释: 因为无重复字符的最长子…

Java8实战-总结6

Java8实战-总结6 通过行为参数化传递代码对付啰嗦匿名类第五次尝试&#xff1a;使用匿名类第六次尝试&#xff1a;使用Lambda表达式第七次尝试&#xff1a;将List类型抽象化 真实的例子用Comparator来排序 通过行为参数化传递代码 对付啰嗦 人们不愿意用那些很麻烦的功能或概…

个微API,微信机器人开发

简要描述&#xff1a; 退出群聊 请求URL&#xff1a; http://域名地址/quitChatRoom 请求方式&#xff1a; POST 请求头Headers&#xff1a; Content-Type&#xff1a;application/jsonAuthorization&#xff1a;login接口返回 参数&#xff1a; 参数名必选类型说明wI…

Redis实战案例24-关注推送

1. Feed流实现方案 拉模式主要缺点&#xff0c;延迟问题&#xff0c;极端情况某个用户关注了成千上万的up主&#xff0c;每位up主又发布了十几条博客&#xff0c;此时拉模式的延迟就会很高&#xff1b; 推模式缺点也很明显&#xff0c;内存消耗太大&#xff0c;假设up主是千万级…

【idea工具】idea工具,build的时候提示:程序包 com.xxx.xx不存在的错误

idea工具&#xff0c;build的时候提示:程序包 com.xxx.xx不存在的错误&#xff0c;如下图&#xff0c;折腾了好一会&#xff0c; 做了如下操作还是不行&#xff0c;idea工具编译的时候&#xff0c;还是提示 程序包不存在。 a. idea中&#xff0c;重新导入项目&#xff0c;也还…

基于DNN深度学习网络的OFDM+QPSK信号检测算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ............................................................................. Transmitt…

区块链实验室(11) - PBFT耗时与流量特征

以前面仿真程序为例&#xff0c;分析PBFT的耗时与流量特征。实验如下&#xff0c;100个节点构成1个无标度网络&#xff0c;节点最小度为5&#xff0c;最大度为38. 从每个节点发起1次交易共识。统计每次交易的耗时以及流量。本文所述的流量见前述仿真程序的说明:区块链实验室(3)…

页面设计—FlexContainer弹性容器组件详解

一、组件介绍 Flex 是 Flexible Box 的缩写&#xff0c;意为"弹性布局"&#xff0c;用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为 Flex 布局&#xff0c;可以与栅格布局结合使用。 二、样式介绍 三、如何使用 &#xff08;1&#xff09;找到FlexCo…

实用!SD人物表情提示词合辑;秒变大神的Python速查表;开源LLM微调训练指南;LLM开发必修课 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; 太实用了&#xff01;Stable Diffusion 的24个表情提示词 Pensive 沉思 Smiling 微笑 Disgusted 厌恶 Laughing 大笑 Shocked 震惊 Fr…

【数据分析专栏之Python篇】全网最细Anaconda安装与配置

文章目录 [toc] 前言一、 Anaconda是什么1.1 简介1.2 特点1.3 Anaconda、conda、pip、virtualenv的区别 二、为什么使用Anaconda三、安装步骤3.1 下载安装3.2 配置conda源 四、结语五、附录六、参考 前言 大家好&#xff01;本篇给大家介绍 Anaconda 安装及配置。 一、 Anaco…

【分享】揭秘BlueWillow::AI绘画工具的平替新选择

哈喽&#xff0c;木易巷上线啦&#xff01; 今天我要给大家介绍一个全新的AI绘画工具——BlueWillow。如果你正在寻找一款能够替代Midjourney的工具&#xff0c;那么BlueWillow绝对值得一试&#xff01; 官网链接和邀请链接都在最后哦&#xff01; 首先&#xff0c;BlueWillo…

< 今日小技巧:Axios封装,接口请求增加防抖功能 >

文章目录 &#x1f449; 前言&#x1f449; 一、核心代码 &#xff1a; 防抖函数&#x1f449; 二、Axios封装中的配置&#x1f449; 三、实现原理&#x1f449; 结论&#x1f449; 补充优化&#xff1a; 解决多个接口请求&#xff0c;拦截掉了需要的请求> 防抖函数> 引用…

c 学习笔记(自用)---GCC编译器

1.GCC编译器的使用 1&#xff09; 一个c文件预处理和编译的过程 可以用以上命令去逐步调试下&#xff0c;看看预处理的过程 2&#xff09;命令举例与解释 #源文件较少的情况下 gcc -o test main.c sub.c #分别将 main.c 和sub.c文件进行预处理、编译、汇编&#xff0c; #…

push_back 和 emplace_back 的区别

文章目录 1、vector::push_back1.1 void push_back(T&& x) ; (C11)参数返回值类型大小 和 容量移动左值用户自定义类型使用 push_back 1.2 void push_back(const T &x);参数返回值类型 1.3 如果 vector 的 size 超过当前capacity&#xff0c;push_back 会使迭代器、…

一分钟学一个 Linux 命令 - rm

前言 大家好&#xff0c;我是 god23bin&#xff0c;欢迎回到咱们的《一分钟学一个 Linux 命令》系列&#xff0c;今天我要讲的是一个比较危险的命令&#xff0c;rm 命令&#xff0c;没错&#xff0c;你可以没听过 rm 命令&#xff0c;但是删库跑路你不可能没听过吧&#xff1f…

RISCV -3 RV32I/RV64I基本整型指令集

RISCV -3 RV32I/RV64I基本整型指令集 1 RV32I Base Integer Instruction Set1.1 Programmers’ Model for Base Integer ISA1.2 Base Instruction Formats1.3 Immediate Encoding Variants1.4 Integer Computational Instructions1.4.1 Integer Register-Immediate Instruction…

25-30天每日强训选择题改错解析

int i5; int s(i)(i)(i–)(–i); s( )//s 的值是什么&#xff1f; A 28 B 25 C 21 D 26 E 24 F 23 正确答案&#xff1a; E 5775 24 或者 --在后先不变化数值 -- 在前先变化再运算 以下哪项不属于java类加载过程&#xff1f; A 生成java.lang.Class对象 B int类型对象成…

【Vue】day04-组件通信

day04 一、学习目标 1.组件的三大组成部分&#xff08;结构/样式/逻辑&#xff09; scoped解决样式冲突/data是一个函数 2.组件通信 组件通信语法 父传子 子传父 非父子通信&#xff08;扩展&#xff09; 3.综合案例&#xff1a;小黑记事本&#xff08;组件版&#xf…

Windows下达梦数据库图形化安装、初始化数据库及连接

文章目录 前言一、达梦数据库安装1、下载安装包2、解压3、安装 二、初始化数据库三、连接数据库1、客户端工具2、输入连接信息3、成功连接 总结 前言 本节将介绍达梦数据库的图形化界面安装的细节&#xff0c;本节以Win11系统及DM8为基础进行讲解&#xff0c;虽然是图形化安装…