首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏小鑫同学编程历险记

    🧩 Vue 深入组件开发☞#异步组件#

    写作背景: 在前端开发中提到按需加载我们通常指的是路由配置的时候通过 webpack 提供的 import 函数来异步加载页面级别的组件,当路由被实际访问的时候才去加载对应组件的资源。 API 示例: 实现异步组件加载: import { defineAsyncComponent } from 'vue' const AsyncComp = defineAsyncComponent( /Foo.vue'), // 加载异步组件时使用的组件 loadingComponent: LoadingComponent, // 展示加载组件前的延迟时间,默认为 200ms delay ,默认值是:Infinity timeout: 3000 }) 按需异步组件实验案例: 演示项目结构 下面是这次实验项目的组件结构,在 App 组件中依次导入 TitleComp、BannerComp ,入参需要提供包裹 TodoListComp 的容器 target 和 组件实际导入的 Uri,出参需要提供需要展示的控制标识和异步导入的组件对象。

    83540编辑于 2022-12-26
  • 来自专栏生如夏花绚烂

    Suspense异步请求组件

    通过Suspense我们可以方便的实现异步请求,加载前和加载后的效果 通常我们都要一个需求,当组件中的数据还在请求时,展示loading效果,当请求完毕时在展示正常的数据 之前这部分逻辑要我们自己定义 ,现在可以使用Suspense 如下 首先我们要给异步加载数据的组件的setup函数返回一个promise <template>

    {{number} assets/logo.png">

    X:{{x}}

    Y:{{y}}

    </template> default为数据加载完毕展示的组件 fallback为数据加载时展示的组件 如果 default中有多个组件,则会等待所有组件数据都加载完毕时才展示default里面的组件

    90620编辑于 2022-09-08
  • 来自专栏前端开发

    Vue之异步组件【探究 Vue 的异步组件的魔力所在】

    这就是 Vue 的异步组件的魔力所在。那么如何才能学会掌握这个超级能力呢?让我们进入 Vue 异步组件的世界,一起探索其中的奥秘吧! 三大法宝 1. Promise大法好 Promise 是 JavaScript 中处理异步操作的一个重要工具。把它想象成在我们的 Vue 组件中投递邮件,而邮递员正是我们的浏览器。 嘘 ~,我们有个“信鸽术”组件,这个组件是从数据库中获取信息,然后显示给用户,这可就用到了 Promise 的力量了。 }) } 优化异步组件性能大法 前端人,前端魂,咱追求的就是一个字美,美是什么,美就是极致 极致性能之道有两条,一是“卖肾换Mac”,二是“代码优化”。 我们来看看如何优化异步组件的性能。 1. 路径分离术与懒加载术 这可能是你的 Vue 应用中最简单,最高效的性能优化策略。你的代码会被切成多块,只在需要时加载相应的块,而不是一次性加载所有代码。

    35010编辑于 2024-03-20
  • 来自专栏Super 前端

    Vue基础:组件--slot、异步组件、递归组件及其他

    slot分发内容 为了让组件可以组合,我们需要一种方式来混合父组件的内容与子组件自己的模板。这个过程被称为内容分发。Vue中使用特殊的 元素作为原始内容的插槽。 问题(编译作用域) message 应该绑定到父组件的数据,还是绑定到子组件的数据? <child-component> {{ message }} child-component> 答案是父组件。父组件模板的内容在父组件作用域内编译;子组件模板的内容在子组件作用域内编译。 / 作用域插槽 在子组件插槽中可以通过slot插槽标签的属性将数据传递到父组件要分发的内容当中,父组件要通过模板来接收子组件插槽传递上来的数据。 异步组件 Vue.js 允许将组件定义为一个工厂函数,异步地解析组件的定义。

    3.2K40发布于 2021-08-30
  • vue3 异步组件

    什么是异步组件在 Vue 3 中,异步组件指的是一种在需要时才加载和渲染的组件。这意味着组件不会在应用启动时立即加载,而是在真正需要显示该组件的时候,才会动态地从服务器或文件系统中加载它。 : 当异步组件正在加载时显示的组件。 Suspense<Suspense> 是一个内置组件,用来在组件树中协调对异步依赖的处理。 Suspense 允许定义一个等待异步组件加载的“占位符”,在异步组件加载完成之前,可以显示一个加载状态或者默认内容。 实际应用Suspense 组件的实例,用于包裹异步组件,允许在组件加载期间显示备用内容。

    56610编辑于 2024-08-01
  • 来自专栏Super 前端

    Vue基础:组件--slot、异步组件、递归组件及其他

    slot分发内容 为了让组件可以组合,我们需要一种方式来混合父组件的内容与子组件自己的模板。这个过程被称为内容分发。Vue中使用特殊的 <slot> 元素作为原始内容的插槽。 问题(编译作用域) message 应该绑定到父组件的数据,还是绑定到子组件的数据? <child-component> {{ message }} </child-component> 答案是父组件。父组件模板的内容在父组件作用域内编译;子组件模板的内容在子组件作用域内编译。 Prop 允许外部环境传递数据给组件; 事件允许从组件内触发外部环境的副作用; 插槽允许外部环境将额外的内容组合在组件中。 异步组件 Vue.js 允许将组件定义为一个工厂函数,异步地解析组件的定义。

    2K41发布于 2019-08-15
  • 来自专栏前端专享

    如何测试 React 异步组件

    前言 本文承接上文 如何测试驱动开发 React 组件?,这次我将继续使用 @testing-library/react 来测试我们的 React 应用,并简要简要说明如何测试异步组件异步组件的测试内容 我们知道异步请求主要用于从服务器上获取数据,这个异步请求可能是主动触发的,也可能是(鼠标)事件响应,本文主要包含 2 方面内容: 如何测试在 componentDidMount 生命周期中发出的异步请求 如何测试(鼠标)事件发出的异步请求 ? ---- 对于异步组件,有两件步骤需要进行测试: 第一:测试异步方法本身有没有被调用,并且传了正确的参数。 第二:在调用之后,应用程序应该做出响应。 然后,我们等待异步方法解析并等待 Posts 组件重新渲染。为此,我们使用 waitFor 方法,同时检查标题是否呈现,之后遍历检查,确保每一个标题在页面上。 : 通过 mock 使组件可以获取静态假数据; 测试加载状态; 测试异步方法是否被正确调用,并且带上了正确的参数; 测试组件是否正确地渲染了数据 测试异步方法错误时,组件是是否渲染了正确的状态 文中关于登录成功后页面跳转并未测试

    4.6K50编辑于 2021-12-31
  • 来自专栏数据科学(冷冻工厂)

    Python 异步: 创建和运行异步任务(7

    异步事件循环管理任务。因此,所有协程都成为事件循环中的任务并作为任务进行管理。让我们仔细看看 asyncio 任务。1. 什么是异步任务异步任务是一个调度并独立运行 asyncio 协程的对象。 因为异步任务是可等待的,这意味着协程可以使用 await 表达式等待任务完成。... # create a task from a coroutinetask = asyncio.create_task(task_coroutine())这将做几件事:将协程包装在异步任务实例中。

    2.3K00编辑于 2023-02-06
  • 来自专栏BennuCTech

    FLutter异步加载组件FutureBuilder

    在flutter中我们可以在initState中发起异步请求,然后将请求结果赋值给data,并setState刷新页面,在build中可以这样实现 if(data == null){ return _LoadingWidget() } else{ return ... } 实际上flutter提供了一个FutureBuilder专门来处理需要异步组件,下面是一个简单的示例: var _ 其中它的snapshot是该组件当前的状态,我们通过它来实现组件的切换。 我们通过这些状态来返回不同的组件来实现异步加载的过程。 当任务正常完成(ConnectionState.done且snapshot.hasError为false)时,我们可以通过snapshot.data来获取异步返回的数据,再渲染页面即可。

    2.7K30编辑于 2022-05-31
  • 来自专栏数据科学(冷冻工厂)

    Python 异步: 创建和运行异步任务(7

    异步事件循环管理任务。因此,所有协程都成为事件循环中的任务并作为任务进行管理。 让我们仔细看看 asyncio 任务。 1. 什么是异步任务 异步任务是一个调度并独立运行 asyncio 协程的对象。它提供了一个调度协程的句柄,asyncio 程序可以查询并使用它来与协程交互。 任务是从协程创建的。 因为异步任务是可等待的,这意味着协程可以使用 await 表达式等待任务完成。 ... # create a task from a coroutine task = asyncio.create_task(task_coroutine()) 这将做几件事: 将协程包装在异步任务实例中

    1.2K10编辑于 2023-02-27
  • 来自专栏前端开发

    Vue之异步组件【按需加载,动态引入,乃Vue异步组件之精髓也】

    引子 搞一搞Vue的学习吧,咱们来说说Vue中的那个家伙——异步组件。这异步组件来头不小,究竟是个啥呢?它有那么重要吗?咱们一探究竟。 这就是Vue异步组件的来历。使用异步组件的话,可以大大减少首页加载需要的时间,网页反应会更快,用户也会得到更好的体验。 异步组件是怎么一回事? 异步组件就是我们的Vue项目中,需要但又不需要立即使用的组件。简单来说,就是按需加载。只有当组件真的需要呈现在用户眼前的时候,我们才去加载它。 我们要创建一个异步组件,只需要这样: const MyComponent = () => Promise.resolve({ template: '

    我是异步加载的组件
    在Vue的异步组件中,并不像普通组件那样可以直接在created生命周期使用数据和方法,因为此时的异步组件可能还没有准备好。

    75410编辑于 2024-03-20
  • 来自专栏有意思的前端世界

    揭开Vue异步组件的神秘面纱

    简介 在大型应用里,有些组件可能一开始并不显示,只有在特定条件下才会渲染,那么这种情况下该组件的资源其实不需要一开始就加载,完全可以在需要的时候再去请求,这也可以减少页面首次加载的资源体积,要在Vue中使用异步组件也很简单 : // AsyncComponent.vue <template>

    我是异步组件的内容
    </template> <script> export default { 通过本文,你可以了解Vue对于异步组件的处理过程以及webpack的资源加载过程。 编译产物 首先我们打个包,生成了三个js文件: 第一个文件是我们应用的入口文件,里面包含了main.js、App.vue的内容,另外还包含了一些webpack注入的方法,第二个文件就是我们的异步组件AsyncComponent 然后我们看看App.vue编译后的内容: 上图为App组件的选项对象,可以看到异步组件的注册方式,是一个函数。

    80820编辑于 2022-03-21
  • 来自专栏前端漫步

    vue3中的异步组件

    为什么要使用异步组件 异步组件可以将我们的组件分开打包,按需要加载,这样可以减轻初始页面加载时间和减少资源浪费。当我们需要和路由配合使用时,异步组件也能帮助我们实现按需加载和动态导入。 定义异步组件 Vue3中使用defineAsyncComponent() 来定义异步组件,该API的入参是一个返回组件选项的函数,需要使用 () => import() 函数来导入组件。 :加载异步组件时使用的组件loadingComponent和加载失败后展示的组件errorComponent。 它可以在异步加载组件的时候有一个loading状态,等异步组件创建好之后,再显示组件。 Suspense 组件有两个插槽:#default 和 #fallback。两个插槽都只允许一个直接子节点。 异步组件的suspensible特性 异步组件默认就是“suspensible”的。这意味着如果组件关系链上有一个 Suspense,那么这个异步组件就会被当作这个 Suspense的一个异步依赖。

    1.2K20编辑于 2023-10-14
  • 来自专栏Android点滴积累

    IOS小组件7):小组件点击交互

    引言   前面我们似乎掌握了实现一个小组件所需要的一切技能,默认情况下桌面点击小组件,也正常跳转到了App中。接下来我们一起来看看,小组件是怎么做到点击跳转到App的。 中号组件点击交互1 VStack { Link(destination: URL(string: "medium/link_text1")!) 中号组件点击交互3 Link(destination: URL(string: "medium/widgeturl_root")!) 结语   本文介绍了小组件点击交互的两种方式,widgetURL和Link,通过测试代码了解了具体的使用和组合情况。至此,小组件整个流程上的技术点都讲解完了。 后续还有2个部分:App与小组件数据共享,N个小组件怎么支持。

    2.7K30发布于 2021-06-09
  • 来自专栏学院君的专栏

    基于 Laravel + Vue 组件实现文件异步上传

    picture')) { dd($request->file('picture')); } } 编写前端表单视图 接下来,就可以到前端编写视图文件了,我们将通过单独的 Vue 组件实现前端文件异步上传操作 编写文件上传 Vue 组件 完成视图模板文件的编写之后,接下来就可以编写文件上传 Vue 组件了。 这样在 form.blade.php 视图中就可以正常引入该组件了。 优化前端图片上传组件代码 接下来,回到 resources/js/components/FileUploadComponent.vue 组件,对前端文件上传代码进行调整和优化。 error); }); } } } </script> 再次测试文件上传功能 至此,基于 Laravel + Vue 组件的文件异步上传功能就全部完成了

    3.7K20发布于 2021-01-08
  • 来自专栏随便写写-kifuan

    异步加载 Vue 组件以减小 chunk 体积

    问题 当你的组件过于复杂时,这里指它引用了非常多的第三方库,那么当你打包的时候或许会碰到下面的警告: (!) 方案 对一些比较重的组件,尤其是需要我们从后端获取数据后才显示的组件,用一层 defineAsyncComponent 套起来,如下: const AsyncFoo = defineAsyncComponent /Foo.vue')) 之后再模板里直接当成 Foo 组件用就可以了: <AsyncFoo :prop1="val1" :prop2="val2" /> 这是在 Vue 官网上专门介绍的用法,点此前往 当然,这个不能操之过急,只要拆分几个主要的大组件即可。如果不管三七二十一全都用异步组件,有些地方加载的时候就会直接留白,导致很难看。

    2.4K20编辑于 2022-11-14
  • 来自专栏寻找石头鱼

    es7 awaitasync解决异步问题

    最近做项目遇到一个问题,前端调用ie浏览器中的ocx的方法去查询数据,查询完之后ocx给一个返回值,然后js将返回值当参数传入到另外的函数中去做数据处理,但是遇到一个问题是前端需要异步去执行这个过程 ? 第一行是js调用ocx的方法查询数据,并将返回值保存在code中 第三行是js将返回的code值当参数传入到flex的函数中,这个执行时需要异步的即code有值之后才能执行这一行代码 虽然后台可以写个事件来解决这个问题 ,但是我想知道前端是否能解决,于是通过查看资料发现es7有一个新特性:await/async可以解决异步的问题 ? 遗憾的是IE尚不支持es7的这个语法,所以最终还是由后台来解决了

    63310发布于 2019-09-11
  • 来自专栏mukekeheart的iOS之旅

    Android基础总结(7)——异步消息处理

    使用AsyncTask 2、异步消息机制原理 Android中的异步消息机制主要由四部分组成:Message、Handler、MessageQueue、Looper。 一个异步任务的执行一般包括以下几个步骤: execute(Params... params)执行一个异步任务,需要我们在代码中调用此方法,触发异步任务的执行。 onProgressUpdate(Progress... values),在调用publishProgress(Progress... values)时,此方法被执行,直接将进度信息更新到UI组件上。 onPostExecute(Result result),当后台操作结束时,此方法将会被调用,计算结果将做为参数传递到此方法中,直接将结果显示到UI组件上。  不能在doInBackground(Params... params)中更改UI组件的信息。 一个任务实例只能执行一次,如果执行第二次将会抛出异常。

    1.1K50发布于 2018-02-27
  • 来自专栏狮乐园

    高级 Vue 组件模式 (7)

    因此这篇文章着重来解决这两个问题: toggle 组件能够支持开关状态的初始化功能 toggle 组件能够提供一个 reset 方法以供重置开关状态 重置开关状态可以以异步的方式进行 实现 初始化开关状态 支持异步重置 在实现同步重置的基础上,实现异步重置十分简单,通常情况下,处理异步较好的方式是使用 Promise,使用 callback 也可以,使用 Observable 也是不错的选择,这里我们选择 由于要同时处理同步和异步两种情况,只需把同步情况视为异步情况即可,比如以下两种情况在效果上是等价的: // sync this.status.on = this.onReset(this.status.on $emit("reset", this.status.on) }) } 在 app 组件中,可以传入一个异步的重置逻辑,这里就不贴代码了,直接上一个运行截图,组件会在点击重置按钮后 1 秒后,重置为开状态 成果 你可以通过下面的链接来看看这个组件的实现代码以及演示: sandbox: 在线演示 github: part-7 总结 Function 类型的 prop 属性在一些情况下非常有用,比如文章中提及的状态初始化

    87010发布于 2020-01-21
  • 来自专栏狮乐园

    高级 Angular 组件模式 (7)

    07 使用 Content Directives 原文: Use Content Directives 因为父组件会提供所有相关的 UI 元素(比如这里的 button),所以 toggle 组件的开发者可能无法满足组件使用者的一些附加需求 如果 toggle 组件能够提供一些 hooks 方法或指令给组件使用者,这些 hooks 方法或指令能够在自定义的开关元素上设置一些合理的默认值,那将是极好的。 目标 提供一些 hooks 方法或指令给组件使用者,使其可以与所提供的 UI 元素交互并修改它们。 Directive,而将部分其他工作交付组件使用者来完成。 比如文章中所提及的,作为组件开发者,无法预先得知组件使用者会怎样管理开关元素以及它的样式,因此提供一些 hooks 是很有必要的,而 hooks 这个概念,一般情况下,都会是相对简单的,比如生命周期 hook

    1.1K20发布于 2018-10-19
领券