Vue - 第五天 动态组件& 插槽& 自定义指令

动态组件& 插槽& 自定义指令

  • 一、动态组件
    • 1.什么是动态组件
    • 2.如何实现动态组件渲染
    • 3.使用 keep-alive 保持状态
    • 4. keep-alive 对应的生命周期函数
    • 5. keep-alive 的 include 属性
    • 6.动态展示左右组件
    • 7.例子
  • 二、插槽
    • 1.什么是插槽
    • 2.体验插槽的基础用法
      • 2.1 没有预留插槽的内容会被丢弃
      • 2.2 后备内容(默认内容)
    • 3.具名插槽
      • 3.1 为具名插槽提供内容
      • 3.2 具名插槽的简写形式
    • 4.作用域插槽
      • 4.1 使用作域插槽
      • 4.2 解构插槽 Prop
    • 5.例子
  • 三、自定义指令
    • 1.什么是自定义指令
    • 2. 自定义指令的分类
    • 3.私有自定义指令
    • 4. 使用自定义指令
    • 5. 为自定义指令动态绑定参数值
    • 6. 通过 binding 获取指令的参数值
    • 7. update 函数
    • 8. 函数简写
    • 9. 全局自定义指令

一、动态组件

1.什么是动态组件

动态组件是指在应用程序运行时动态加载和卸载的组件。通常,组件在应用程序启动时就已经加载了,但是在某些情况下,我们可能需要动态地加载组件,例如当某些组件只有在特定条件下才需要使用时。

2.如何实现动态组件渲染

vue提供了一个内置的 组件, 专门用来实现动态组件的渲染 。示例代码如下:

Vue - 第五天 动态组件& 插槽& 自定义指令_第1张图片

<template>
	
	<component :is="comName">component>
	
	
	 <button @click="comName= 'Left'">展示左组件button>
     <button @click="comName= 'Right'">展示右组件button>
template>

<script>
// 引入子组件
import Left from './components/Left.vue';
import Right from './components/Right.vue';
export default {
     
  // 根组件的数据
  data() {
     
    return {
     
      comName: '', // 记录当前显示的子组件名称
    }
  },
  // 引入子组件
  components: {
     
    Left,
    Right
  }
}
script>

3.使用 keep-alive 保持状态

默认情况下,切换动态组件时无法保持组件的状态 。此时可以使用 vue 内置的 组 件保持动态件的状态。示例代码如下:

 
      <KeepAlive>
        <component :is="currentComponent">component>
      KeepAlive>

4. keep-alive 对应的生命周期函数

当组件被缓存时,会自动触发组件的 deactivated 生命周期函数。
当组件被激活时,会自动触发组件的 activated 生命周期函数。
Vue - 第五天 动态组件& 插槽& 自定义指令_第2张图片

Vue - 第五天 动态组件& 插槽& 自定义指令_第3张图片

5. keep-alive 的 include 属性

include属性用来指定: 只有名称匹配的组件会被缓存 。多个组件名之间使用英文的逗号分隔:

Vue - 第五天 动态组件& 插槽& 自定义指令_第4张图片

<KeepAlive include="MyLeft,MyRight">
        <component :is="comName">component>
 KeepAlive>

exclude属性用来指定: 只有名称不匹配的组件会被缓存 。多个组件名之间使用英文的逗号分隔。

6.动态展示左右组件

最终实现效果,在展示右组件时,左组件被缓存,计数器数据得到保存。

你可能感兴趣的:(vue.js,前端,javascript)