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

    🧩 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
  • 来自专栏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
  • 来自专栏前端开发

    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
  • 来自专栏前端人人

    React第三方组件5(状态管理之Redux的使用⑤异步操作)

    1、React第三方组件5(状态管理之Redux的使用①简单使用)---2018.03.20 2、React第三方组件5(状态管理之Redux的使用②TodoList上)---2018.03.21 3、 React第三方组件5(状态管理之Redux的使用③TodoList中)---2018.03.22 4、React第三方组件5(状态管理之Redux的使用④TodoList下)---2018.03.23 5、React第三方组件5(状态管理之Redux的使用⑤异步操作)---2018.03.26 6、React第三方组件5(状态管理之Redux的使用⑥Redux DevTools)---2018.03.27 node v8.9.1,npm 5.5.1,WebStorm 2017.2.2 这里我们需要用到 redux-thunk npm i -S redux-thunk 1、我们先复制一份redux4到redux5, id).status = status; return {list}; default: return state; } }; 5

    2K40发布于 2018-04-11
  • 来自专栏学院君的专栏

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

    picture')) { dd($request->file('picture')); } } 编写前端表单视图 接下来,就可以到前端编写视图文件了,我们将通过单独的 Vue 组件实现前端文件异步上传操作 编写文件上传 Vue 组件 完成视图模板文件的编写之后,接下来就可以编写文件上传 Vue 组件了。 $fileName = $picture->getClientOriginalName(); // 生成新的统一格式的文件名 $newFileName = md5( 优化前端图片上传组件代码 接下来,回到 resources/js/components/FileUploadComponent.vue 组件,对前端文件上传代码进行调整和优化。 error); }); } } } </script> 再次测试文件上传功能 至此,基于 Laravel + Vue 组件的文件异步上传功能就全部完成了

    3.7K20发布于 2021-01-08
  • 来自专栏前端文章小tips

    js异步5种样式

    js异步5种样式 1.定时器 2.AJAX 3.Promise 4.Generator 5.asyns和await 1.定时器 setTimeout() : 延时器 可以传入三个分别是 1)code 对象,具有then方法的对象,会产生一个promise,并且调用这个then方法 3.不是thenable对象或者不是对象,返回一个新的promise 4.没有参数 返回 一个新的promise对象 5) Promise.reject() 类似返回一个失败的promise对象 6)案例(嵌套使用): 可以指定传入的json的数据 4.Generator(不太经常使用过于繁琐) 生成器函数的异步操作,主要特点有 3)案例: 第一个一秒打印出来,第二个等第一个完成后过两秒打印,第三个等第二个完成后过三秒打印(太过繁琐) 5.asyns和await async 函数是什么? 故名思意async意为异步表示执行异步操作,await意为等待将配合async进行使用从而达到异步

    5.4K10编辑于 2021-12-08
  • 来自专栏随便写写-kifuan

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

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

    2.4K20编辑于 2022-11-14
  • 来自专栏itclanCoder

    React进阶(5)-分离容器组件,UI组件(无状态组件)

    Redux实现了一个todolist,但是代码依旧不够完美,我们继续进行拆分的 在本节中,你将学习到,如何拆分容器组件,UI组件(无状态组件),让组件尽可能的保持功能的单一,减少组件的状态的 · 正 ,一个是获取store中的数据,另一个就是渲染组件 我们可以把这个组件进一步的拆分成两个组件,分别承担着不同的任务,然后把两个组件嵌套起来,完成一个大组件所有的功能 关于组件的嵌套问题,涉及到一个父子组件 (外部组件与内部组件),在组件当中调用的地方位置处,可以视它为子(内部)组件,父子组件只是一个相对的概念,把承担负责和redux中store打交道的组件称为父组件(外层),也叫做容器组件(聪明组件),它干的事情比较多 UI组件(傻瓜组件/无状态组件) UI组件:纯函数,没有任何副作用,给指定的输入,有指定的输出的函数,换句话说,只根据外部组件的props进行渲染组件的 好处:拆分成容器组件与UI组件,不仅仅是功能上的分离 { constructor(props) { super(props); // 5.

    1.4K10发布于 2020-10-28
  • 来自专栏itclanCoder

    React进阶(5)-分离容器组件,UI组件(无状态组件)

    Redux实现了一个todolist,但是代码依旧不够完美,我们继续进行拆分的 在本节中,你将学习到,如何拆分容器组件,UI组件(无状态组件),让组件尽可能的保持功能的单一,减少组件的状态的 容器组件 ,一个是获取store中的数据,另一个就是渲染组件 我们可以把这个组件进一步的拆分成两个组件,分别承担着不同的任务,然后把两个组件嵌套起来,完成一个大组件所有的功能 关于组件的嵌套问题,涉及到一个父子组件 (外部组件与内部组件),在组件当中调用的地方位置处,可以视它为子(内部)组件,父子组件只是一个相对的概念,把承担负责和redux中store打交道的组件称为父组件(外层),也叫做容器组件(聪明组件),它干的事情比较多 ,也叫做傻瓜组件,因为它不具备任何逻辑,功能比较单一,只负责页面填充渲染 UI组件(傻瓜组件/无状态组件) UI组件:纯函数,没有任何副作用,给指定的输入,有指定的输出的函数,换句话说,只根据外部组件的 {     constructor(props) {         super(props);         // 5.

    2K00发布于 2020-10-25
  • 来自专栏李蔚蓬的专栏

    Vue3 | 父子组件间通信、组件间双向绑定的高级内容、插槽详解、动态组件异步组件

    、v-slot、<slot>做列表渲染 使用解构概念进行简写 动态组件 常规的利用双向绑定特性,通过点击事件切换UI的写法 动态组件写法 异步组件 父子组件可通过事件 进行通信 前面的笔记 —— 《Vue3 | 组件的定义及复用性、局部组件、全局组件组件间传值及其校验、单项数据流、Non-props属性》,单向数据流的概念, 即子组件无法修改来自父组件的数据字段, 如果确要修改,可以使用下面说的方式进行通信 插槽作用域问题 虽然,父组件中 往子组件标签间 插入的组件 会替换子组件的插槽位, 但是父组件中 往子组件标签间 插入的组件, 其所使用的数据字段,仍然是父组件的,而非子组件; 父组件的template 异步组件 首先, 本文在此案例之前的所有案例,都是同步组件, 即随即渲染,一个线程运行; 下面是异步(自定义子)组件, 可以设定在某个时刻开始,延迟一个时延后,再执行渲染: <script> }) }, 4000) }) })) const vm = app.mount('#heheApp'); </script> 关键代码【异步

    6.8K10发布于 2021-03-23
  • 来自专栏纸上得来终觉浅

    Vue3源码阅读笔记之异步组件

    // 看下vue的异步组如何实现的 // implementation, close to no-op // 外部调用API function defineComponent(options) { // 统一参数 if (isFunction(source)) { source = { loader: source }; } // 我们平常使用的异步组件的主要参数 comp; }))); }; return defineComponent({ __asyncLoader: load, // 异步组件统一名字 重新渲染组件 只不过此时我们已经得到组件内容了 loaded.value = true; }) .catch(err component inherits the async wrapper's ref owner vnode.ref = ref; return vnode; } // 总结一下:vue3的异步组件写的非常清晰明了

    1.4K10发布于 2021-04-13
  • 来自专栏编程微刊

    Vue.js 中的异步组件是什么?

    在 Vue.js 中,异步组件是一种延迟加载组件的方式。允许将组件的加载推迟到组件真正需要被渲染时再进行,而不是在初始化时立即加载所有组件。 通过使用异步组件,可以提高应用的初始加载速度,尤其是当应用包含大量组件时。只有当组件需要被显示时,才会触发异步加载,从而减少了初始加载时的资源消耗。 在 Vue.js 中,可以使用两种方式定义异步组件: 1:使用 import() 函数: Vue.component('AsyncComponent', () => import('. /AsyncComponent.vue')); 在这种方式下,使用 import() 函数动态地导入组件的定义。当组件需要被渲染时,会异步地加载组件的代码和模板。 无论使用哪种方式,当异步组件加载完成后,会被缓存起来,以便在下次需要渲染时可以直接使用缓存的组件定义,而无需再次加载。

    26900编辑于 2025-05-25
领券