2024年最全学习了 Vue defineAsyncComponent Api,它教给我这些知识?(1),2024年最新腾讯前端面试 算法

框架相关

原生JS虽能实现绝大部分功能,但要么就是过于繁琐,要么就是存在缺陷,故绝大多数开发者都会首选框架开发方案。现阶段较热门是React、Vue两大框架,两者工作原理上存在共通点,也存在一些不同点,对于校招来说,不需要两个框架都学得特别熟,一般面试官会针对你简历中写的框架进行提问。

在框架方面,生命周期、钩子函数、虚拟DOM这些基本知识是必须要掌握的,在学习的过程可以结合框架的官方文档

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

Vue框架

知识要点:
1. vue-cli工程
2. vue核心知识点
3. vue-router
4. vuex
5. http请求
6. UI样式
7. 常用功能
8. MVVM设计模式

React框架

知识要点:
1. 基本知识
2. React 组件
3. React Redux
4. React 路由

本文 GitHub https://github.com/qq449245884/xiaozhi 已收录,有一线大厂面试完整考点、资料以及我的系列文章。

使用 Vue3 的 DefileAsyncComponent功能可让我们懒加载组件,说白了就是创建一个只有在需要时才会加载的异步组件。

这是改进初始页面加载的好方法,因为我们的应用程序将加载到较小的块中而不是必须在页面加载时加载每个组件。

01.png

在本文中,我们将学习有关defineAsyncComponent的所有知识,并学习一个懒加载弹出窗口的例子。

02.gif

defineAsyncComponent 是啥?

const AsyncComp = defineAsyncComponent(

() =>

new Promise((resolve, reject) => {

resolve({

template: ‘

I am async!

})

})

)

defineAsyncComponent 可以接受一个返回 Promise 的工厂函数。Promise 的 resolve 回调应该在服务端返回组件定义后被调用。你也可以调用 reject(reason) 来表示加载失败。

defineAsyncComponent 可以从 vue 中导入,并使用:

import { defineAsyncComponent } from “vue”

// simple usage

const LoginPopup = defineAsyncComponent(() => import(“./components/LoginPopup.vue”))

这是defineAsyncComponent的最简单方法,对于高阶用法,defineAsyncComponent 可以接受一个对象:

const AsyncPopup = defineAsyncComponent({

loader: () => import(“./LoginPopup.vue”),

// 加载异步组件时要使用的组件

loadingComponent: LoadingComponent,

// 加载失败时要使用的组件

errorComponent: ErrorComponent,

// 在显示 loadingComponent 之前的延迟 | 默认值:200(单位 ms)

delay: 1000,

// 如果提供了 timeout ,并且加载组件的时间超过了设定值,将显示错误组件

// 默认值:Infinity(即永不超时,单位 ms)

timeout: 3000

})

基础已经介绍完了,接着,我们来做个例子。

使用 defineAsyncComponent 异步加载 Popup 组件

在这个例子中,我们将使用一个由点击按钮触发的登录弹框。

我们不需要我们的应用程序在每次加载时都加载这个组件,因为只有在用户执行特定的动作时才需要它。

下面是 login 组件的实现:

// LoginPopup.vue

Login to your account

Log in

03.png

在其它组件中导入它:

<button @click=“show = true”> Login

我们可以使用 defineAsyncComponent,只在需要的时候加载它(按钮被点击时使用v-if来切换)。

<button @click=“show = true”> Login

这个用法看起来和上面的差不多,不急,我们 F12 打开控制台。

如果我们不使用defineAsyncComponent,一旦我们的页面加载,我们就会看到我们的应用程序从服务器上获得LoginPopup.vue。虽然在这个例子中,性能问题不那么严重,但如果我们有几十个组件这样做,性能上多多少少还是有影响的。

04.png

文末

我一直觉得技术面试不是考试,考前背背题,发给你一张考卷,答完交卷等通知。

首先,技术面试是一个 认识自己 的过程,知道自己和外面世界的差距。

更重要的是,技术面试是一个双向了解的过程,要让对方发现你的闪光点,同时也要 试图去找到对方的闪光点,因为他以后可能就是你的同事或者领导,所以,面试官问你有什么问题的时候,不要说没有了,要去试图了解他的工作内容、了解这个团队的氛围。

前端面试题汇总

JavaScript

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

性能

linux

前端资料汇总

orums/4304bb5a486d4c3ab8389e65ecb71ac0)**

性能

linux

前端资料汇总

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值