Top
Fork me on Gitee My Github

Vue3_arco.design -- icon 组件批量渲染

参考文档-vue3
参考文档-arco.design
参考文档-ruoyi

<div v-for="item of AIcons" :key="item" @click="handleClipboard(generateAIconCode(item), $event)">
  <a-tooltip placement="top">
    <template #content>
      {{ generateAIconCode(item) }}
    </template>
    <div class="icon-item">
      <functional-icons :icon="item"></functional-icons>
      <span>icon-{{ item }}</span>
    </div>
  </a-tooltip>
</div>

<script>
  import clipboard from '@/utils/clipboard'
  import AIcons from './a-icons'
  import FunctionalIcons from './FunctionalIcons'
  export default {
    name: 'Icon',
    components: { FunctionalIcons },
    setup() {
      // tooltip 提示内容
      const generateAIconCode = (symbol) => {
        return `<icon-${symbol} />`
      } 
      // 复制功能
      const handleClipboard = (text, event) => {
        clipboard(text, event)
      }
      return {
        AIcons,
        generateAIconCode,
        handleClipboard
      }
    }
  }
</script>

FunctionalIcons.vue

函数式组件进行组件渲染

<script >
  import { h, resolveDynamicComponent } from "vue"

  function Icon(props, ctx) {
    const Component = resolveDynamicComponent('icon-' + props.icon)
    return h(Component)
  }
  export default Icon
</script>

a-icon.js

将icon名字整合到文件中,并暴露出去

const AIcons = ["loop",......]
export default AIcons
posted @   lisashare  阅读(1169)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示