一、Vue的动态引入组件;

  有的时候不知道引入什么组件,要根据数据的类型来引入不同的组件,这个时候就需要动态组件

动态组件
  1、用法 :is = 'component-name'
  2、用途 需要根据数据,动态渲染的场景。即组件类型不明确

父组件

<component :is="nextTiceName" />"

:is 后边是组件名,是一个变量,本例子中变量为 nextTiceName,然后 nextTiceName 返回了 组件名,变量可以函数返回或者根据数据处理返回;

数据中

import NextTick from '@/components/nextTice'
export default {
components: {
NextTick
},
data() {
nextTiceName: 'NextTick'
}
}

二、异步组件

  有的时候一个组件特别大,而且不是初始化的时候才需要,特定时候才需要这时候就要异步加载

  1、import 函数
  2、按需加载,异步加载大组件

父组件

<FormDemo v-if="formDate" />

在这里 formDate  控制这个组件是否显示,例如特定点击才显示此组件;正常我们是 import 引入函数,但是这里就不通过 import 了,直接在 components 里面注册

export default {
components: {
FormDemo: () => import('../components/formDemo')
}
}

三、组件缓存 keep-alive

1、频繁切换,不需要重复渲染
2、这是Vue的一个性能优化地方
例如:tab页,tab1 tab2 tab3,tab2显示的话tab1就会destory,tab3显示tab2就会destory,这个时候来回切换影响内存,就要用到keep-alive

四、组件混合 mixin

1、多个组件有相同的逻辑。抽离出来
2、mixin 并不完美,会有一些问题 vue3的composition Api旨在解决这些问题

写法:例如新建一个 mixin.js文件

export default {
// 多个组件公用的逻辑,数据处理,方法都可以写在这里面
data() {
return {
name: '城市'
}
},
methods: {
showName() {}
},
mounted(){}
}

父组件中引入:

import myMixin from './mixin'

export default {
mixins: [myMixin], // 可以添加多个
data() {
return {}
}
}

这样将多个组件复用的逻辑都写在mixin里面,那里要哪里引入就行;和类似写一个公用js文件是一个原理

mixin问题
、变量来源不明确,不利于阅读
、多命名mixin 可能会造成命名冲突

五、动态创建组件的例子

组件写好之后有的时候需要动态创建组件。例如:

编辑文章页面,正文是一个富文本编辑器,富文本编辑器是一个第三方的组件,点击添加章节的时候需要动态的创建一个富文本编辑器这个时候怎么处理呢。

富文本编辑器也就是第三方的组件,需要绑定一个值就跟input一样,但是其他的和平常都是一样的,根据这个特点我们就可以使用Vue的for循环去动态创建例如

<div>
<quill-editor
v-model="item.content"
style="min-height: 150px;background: #fff;"
v-for="item in items"
class="editer">
</quill-editor>
</div>
<div class="addClass_box">
<span @click="addTravel()">+&nbsp;新增章节</span>
</div>
quill-editor 这个是个组件,直接循环出来就行,至于组件所绑定的值,循环出来绑定进去就行。
import { quillEditor } from 'vue-quill-editor'

    export default {
components: {
quillEditor
},
data () {
return {
items: [{
component: quillEditor,
content: ''
}]
}
},
methods: {
addTravel(){
this.items.push({
component: quillEditor,
content: ''
})
}
}
}

点击添加的时候把items这个数组扩张就行了。

 

Vue动态创建组件方法的更多相关文章

  1. vue 动态创建组件(运行时创建组件)

    function mountCmp (cmp, props, parent) { if (cmp.default) { cmp = cmp.default } cmp = Vue.extend(cmp ...

  2. Angular动态创建组件之Portals

    这篇文章主要介绍使用Angular api 和 CDK Portals两种方式实现动态创建组件,另外还会讲一些跟它相关的知识点,如:Angular多级依赖注入.ViewContainerRef,Por ...

  3. angular4 动态创建组件 vs 动态创建模板

    实现  模拟场景:页面上"帮助"按钮的点击触发帮助文档的弹出框,且每个页面的帮助文档不一样 因此弹出框里的帮助文档是一个动态模板而不是动态组件 以下comp均代表Type类型的动态 ...

  4. 动态创建组件TEdit

    //动态创建组件TEdit procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;  Shift: TShiftSt ...

  5. Delphi动态创建组件,并释放内存

    开发所用delphi版本是xe2,效果图如下: 代码如下: ---------------------------------------------------------------------- ...

  6. Vue之创建组件之配置路由!

    Vue之创建组件之配置路由!== 第一步: 当然就是在我们的试图文件夹[views]新建一个文件夹比如home 在home文件夹下面新建一个文件index.vue 第二步:在router目录下做如下事 ...

  7. vue.js 创建组件 子父通信 父子通信 非父子通信

    1.创建组件 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...

  8. Delphi 动态创建组件,单个创建、单个销毁

    效果图如下: 实现部分代码如下: var rec: Integer = 0; //记录增行按钮点击次数 implementation {$R *.dfm} //动态释放单个组件内存,即销毁组件 pro ...

  9. OAF 动态创建组件以及动态绑定属性

    在开发中,我们遇到以下一个需求. 一个表格左侧有5列是固定存在的,右侧有N列是动态生成的,并且该N列中第一列可输入,第二列是不可编辑的,但是是数字,如果小于0,那么就要显示为红色,重点标识出来. 首先 ...

随机推荐

  1. postgresql vacuum table

    2down vote according to Documentation VACUUM reclaims storage occupied by dead tuples. But according ...

  2. 如何让图片开口说话 3DMeNow教程

    菜鸟玩3D--3DmeNow初级教程 3D软件对于我们这些菜鸟来说,一直是可望而不可及的一种东西,深奥的3D建模,复杂的面板操作--都使我们对之望而却步,有没有一种很简单的3D造型软件,使我们这些菜鸟 ...

  3. DIY.NETORM框架——总体分析

    一.故事 近些年一直开发MIS系统,用过PB,VB,C#  .如今学了半年的java,早先听人说,.NET和 java一直就是互相借鉴.一起升级.都是为了让程序开发趋于简单,高校,而这不可避免就肯定用 ...

  4. ssh远程连接出现someone counld be eavesdropping on you right now 的错误

    master主机通过ssh远程连接slaves机子时出现下述错误 解决的方法: 一.删除/root/.ssh/下的kown_hosts文件 二.在master机子上又一次运行scp id_dsa.pu ...

  5. HDU 1242 -Rescue (双向BFS)&amp;&amp;( BFS+优先队列)

    题目链接:Rescue 进度落下的太多了,哎╮(╯▽╰)╭,渣渣我总是埋怨进度比别人慢...为什么不试着改变一下捏.... 開始以为是水题,想敲一下练手的,后来发现并非一个简单的搜索题,BFS做肯定出 ...

  6. Codeforces Round #327 (Div. 2)C. Median Smoothing 构造

    C. Median Smoothing   A schoolboy named Vasya loves reading books on programming and mathematics. He ...

  7. B1297 [SCOI2009]迷路 矩阵

    这个题我觉得很有必要写一篇博客.首先,我们需要知道,假如一个邻接矩阵只有0/1构成,那么它自己的n次方就是走n步之后的方案数.但这个题还有2~9咋办呢.我们观察发现,这个题只有10个点,而且边权< ...

  8. B2242 [SDOI2011]计算器

    这个题就是把三个数论基础合在了一起,算是一道比较全面的题. 1的时候就是快速幂 2的时候是exgcd求逆元,特殊的,只有两数互质才有逆元. 3就是bsgs啦,还是不太熟 题干: Description ...

  9. 互斥的数(hash)

    1553 互斥的数  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold     题目描述 Description 有这样的一个集合,集合中的元素个数由给定的N决定, ...

  10. P3299 [SDOI2013]保护出题人

    传送门 全世界都会二分可海星-- 首先记\(sum[i]\)为\(a[i]\)的前缀和,那么第\(i\)个的答案就是\(max\{\frac{sum[i]-sum[j-1]}{x+(i-j)d}\}\ ...