vue 中如何遍历改变组件名

87 阅读1分钟

在使用 antd-vue 的 icon 图标时,遇见一个问题就是每个卡片图标要不一样,但是antd-icon 的组件是<图标名 />这样子的组件,没办法传值修改图标呀,就只能试着修改图标名来渲染不同的图标。

  先直接硬传
  <item.iconClass />
  //执行结果,什么也没有,连 dom 元素都没生成
  
  放在双花括号里面
  <{{ item.iconClass }} />
  //执行结果渲染出来了字符串,因为我把组件名认为是一个字符串

最终方案

//遍历的数据,这里只写了组件列表
 cosnt component = [
   {
     iconClass: component1,
   }, {
     iconClass: component2,
   }, {
     iconClass: component2,
   }
 ]
 
 //然后在遍历的元素里面
 <components :is="item.iconClass" />
 这里要绑定,不然会把它看成一个字符串