javascript - 在 Vue 中渲染不同组件类型的列表

标签 javascript vue.js vue-component

我有一个对象列表。每个对象都包含一个 type 字段,用于确定需要渲染的组件。例如,对于 paragraph 类型,我需要呈现一个名为 Paragraph 的组件。我有大约十几种不同的组件类型。

目前我在 Javascript 中循环遍历列表。我创建了一个带有随机 ID 的 div,并将其替换为我使用 new [ComponentType]({ el: ... }) 手动创建的 Vue 组件。但是,这需要 DOM 操作。有没有更好的方法不需要手动操作 DOM 结构? v-for 或类似的?

最佳答案

是的,有更好的方法。使用 Dynamic Components .

这是这些文档中显示的示例。

var vm = new Vue({
  el: '#example',
  data: {
    currentView: 'home'
  },
  components: {
    home: { /* ... */ },
    posts: { /* ... */ },
    archive: { /* ... */ }
  }
})    

<component v-bind:is="currentView">
  <!-- component changes when vm.currentView changes! -->
</component>    

关于javascript - 在 Vue 中渲染不同组件类型的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41062783/

相关文章:

css - 范围内的 CSS 未在组件中应用

javascript - API服务返回200,但实际上是404

vue.js - 我如何在 Vue.js 中使用对象 Prop ?

vue.js - Vue composition api 没有将绑定(bind)值更新到文本字段

javascript - 如何在 Vue.js 中传递 $router.push 中的数据?

css - Bootstrap Vue scrollspy 无法处理动态数据。检查时,所有元素都在通过时一一激活(突出显示)

javascript - (Node.js+express+MongoDB),如何优化经常使用的变量?

javascript - jquery 脚本标签的意外标记非法

javascript - jQuery 中 $.remove() 的问题

javascript - 从外部服务器读取使用脚本 src 标记调用的文件的响应