Vue----Componentes dinámicos


componentes dinámicos

1. Componentes dinámicos

Los componentes dinámicos se refieren a cambiar dinámicamente la visualización y ocultación de componentes. Vue proporciona un <component>componente , que se utiliza especialmente para lograr una representación dinámica de los componentes.

①Es <component>el marcador de posición del componente
Especifique dinámicamente el nombre del componente que se representará a través del atributo is③
<component is="要渲染的组件的名称"></component>

2. Implementar renderizado de componentes dinámicos

<template>
  <div>
    <h1>App 组件</h1>
    <!-- 切换组件的按钮 -->
    <button @click="comName='Com_1'"> 显示组件1 </button>
    <button @click="comName='Com_2'"> 显示组件2 </button>
    <hr>
    <!-- 动态组件显示区域 -->
    <component :is="comName"></component>
  </div>
</template>

<script>
import Com_1 from './Com_1.vue'
import Com_2 from './Com_2.vue'

export default {
      
      
  name: 'App',
  data() {
      
      
    return {
      
      
      // 组件名字
      comName: ''
    }
  },
  components: {
      
      
    Com_1,
    Com_2
  }
}
</script>

<style>

</style>
<template>
  <div>
    <h3>Com_1 组件</h3>
  </div>
</template>

<script>
export default {
      
      
  name: 'Com_1'
}
</script>

<style>

</style>
<template>
  <div>
    <h3>Com_2 组件</h3>
  </div>
</template>

<script>
export default {
      
      
  name: 'Com_2'
}
</script>

<style>

</style>

Por favor agregue la descripción de la imagenPor favor agregue la descripción de la imagenPor favor agregue la descripción de la imagen

3. Use keep-alive para mantener el estado

De forma predeterminada, el estado de un componente no se puede mantener al cambiar componentes dinámicos. En este punto, puede usar los <keep-alive> componentes integrados de vue para mantener el estado de los componentes dinámicos.

Los estados del componente correspondientes a los tres estados anteriores:

Por favor agregue la descripción de la imagen
Por favor agregue la descripción de la imagen
Por favor agregue la descripción de la imagen

Al cambiar componentes, los componentes se destruyen y crean dinámicamente.

Mantener el estado de los componentes dinámicos.

Agregar una capa fuera del componente dinámico<keep-alive>

    <!-- 动态组件显示区域 -->
    <keep-alive>
      <component :is="comName"></component>
    </keep-alive>
<template>
  <div>
    <h1>App 组件</h1>
    <!-- 切换组件的按钮 -->
    <button @click="comName='Com_1'"> 显示组件1 </button>
    <button @click="comName='Com_2'"> 显示组件2 </button>
    <hr>
    <!-- 动态组件显示区域 -->
    <keep-alive>
      <component :is="comName"></component>
    </keep-alive>
  </div>
</template>

<script>
import Com_1 from './Com_1.vue'
import Com_2 from './Com_2.vue'

export default {
      
      
  name: 'App',
  data() {
      
      
    return {
      
      
      // 组件名字
      comName: ''
    }
  },
  components: {
      
      
    Com_1,
    Com_2
  }
}
</script>

<style>

</style>

Agregar una capa fuera del componente dinámico <keep-alive>almacenará en caché el estado del componente, no destruirá el componente, activará dinámicamente el componente y mantendrá el estado del componente.

Por favor agregue la descripción de la imagen
Por favor agregue la descripción de la imagen
Por favor agregue la descripción de la imagen
Por favor agregue la descripción de la imagen

Supongo que te gusta

Origin blog.csdn.net/m0_53022813/article/details/124440618
Recomendado
Clasificación