ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

vue的异步组件与动态组件

2022-05-13 10:01:34  阅读:154  来源: 互联网

标签:异步 vue 组件 import 动态 data 加载


异步组件:
vue的一种性能优化的方法,可以实现组件的按需加载

组件通过import函数引用,什么时候需要什么时候加载

有利于项目的性能优化,提高页面的加载速度

路由懒加载就是使用了异步组件的原理

规则:使用import引入
components: {
IsAsyncDemo: () => import(‘./IsAsyncD.vue’)
},

ex:点击按钮才加载组件

在异步加载的过程中可能会出现以下错误:

报错:Syntax Error: Unexpected token (10:25)

解决办法:
1.安装babel 动态导入插件:npm install --save-dev babel-plugin-syntax-dynamic-impor
2.在.babelrc中配置使用此插件

{ “presets”: [“env”], “plugins”: [“syntax-dynamic-import”] }

动态组件
让多个组件同使用一个挂载点,并且组件间可以动态切换,这个挂载点就是 component 标签
简单来说是在 component 标签上添加一个is属性,属性值(即currentTabComponent)是控制组件间的切换的
可配合keep-alive使用,这样切换的时候就可以不用频繁渲染
1.keep-alive是vue的内置组件,可以包含动态组件,当组件之间进行切换时,可以保持组件的状态,在内存中缓存不活动组件的实例,而不是销毁它们)
2.并且自身也不会渲染成一个DOM元素,不会显示在父组件链中
规则1. 语法:is=‘compoent-name’ 动态对应 data 中对应的组件值
规则2.data中代表组件的属性值必须是引入组件名
ex1: 普通动态引入

template:

<component :is=“DynamicName”/> // 动态的对应是 data 的值

引入动态子组件

import Dynamic from ‘./Dynamic.vue’

在components中声明

components: {
Dynamic,
}

在data中定义

data(){
return {
DynamicName: ‘Dynamic’, // 这里DynamicName 的属性名必须是引入组件名Dynamic
}
}
如果是用在keep-alive中

ex2:可切换、循环动态引入 - 动态加载图片、视频、文本等组件

取循环中项目的值,对应子组件名字

标签:异步,vue,组件,import,动态,data,加载
来源: https://www.cnblogs.com/yzcheng123/p/16265559.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有