Vue 提供了一个内置的组件工厂函数 Vue.component,可以用来动态添加组件。

以下是动态添加组件的步骤:

  1. 创建组件
// MyComponent.vue
<template>
  <div>{{ message }}</div>
</template>

<script>
export default {
  props: {
    message: String
  }
}
</script>
  1. 在父组件中注册组件工厂函数
import Vue from 'vue'
import MyComponent from './MyComponent.vue'

Vue.component('my-component', MyComponent)
  1. 使用动态组件
<template>
  <div>
    <button @click="addComponent">添加组件</button>
    <component v-for="(component, index) in components" :key="index" :is="component.type" :message="component.message"></component>
  </div>
</template>

<script>
export default {
  data() {
    return {
      components: []
    }
  },
  methods: {
    addComponent() {
      this.components.push({
        type: 'my-component',
        message: 'Hello, World!'
      })
    }
  }
}
</script>

在上面的例子中,我们使用了 component 组件来动态渲染子组件。在 v-for 循环中,我们为每个动态组件指定了 :is 属性来指定组件类型,并通过 :message 属性传递了相应的数据。在 addComponent 方法中,我们可以通过 this.components.push 来添加新的动态组件


原文地址: https://www.cveoy.top/t/topic/cSxq 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录