首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vue3动态渲染

Vue3动态渲染
EN

Stack Overflow用户
提问于 2022-03-27 19:25:47
回答 1查看 476关注 0票数 2

我有一个组件列表,我想从外部为它们设置一个配置,

例如:

代码语言:javascript
复制
 const myConfig = [
  {
    name: 'example',
    renderer: () => (<button @click="clickHanlder">Click me!</button>)
  },
  ...
 ];

对于我的组件,我想使用myConfig,如下所示:

代码语言:javascript
复制
  <template>
    <div class="example">
      <template v-for="(item, index) in myConfig" :key="index">
        My Button:
        <div class="example-2">{{ item.renderer() }}</div>
      </template>
    </div>
  </template>

请注意,我不想使用slots

我怎么能做到呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-27 19:46:01

可以通过使用h呈现函数来实现这一点,如下面的示例所示:

代码语言:javascript
复制
<template v-for="(item, index) in myConfig" :key="index">
    My Button:
    <div class="example-2">
        <component :is="item.renderer" />
    </div>
</template>
<script setup lang="ts">

import {  h } from 'vue';

const myConfig = [
  {
    name: 'example',
    renderer: h('button', {
  
      onClick:clickHanlder
      
    },'Click me !'),
  },

 ];

 function clickHanlder(){
    console.log('click btn');
 }

</script>
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71639602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档