Vue3 h函数渲染组件

1、渲染ElSelect组件

const modulleFilters = ref([
  { label: 1, value: 2 },
  { label: 2, value: 3 },
]);
const search = ref('');
复制代码
const tableColumn = [
  {
    prop: 'module',
    label: '模块',
    headerRender: () =>
      h(
        ElSelect,
        {
          size: 'small',
          placeholder: '请输入内容',
          modelValue: search.value,
          'onUpdate:modelValue': (value: any) => {
            search.value = value;
          },
        },
        () =>
          modulleFilters.value?.map(item => {
            return h(ElOption, { label: item.label, value: item.value });
          })
      ),
    render: ({ column }) => h('span', column.moduleName),
  },
]
复制代码

 

2、渲染ElInput组件

复制代码
{
    prop: 'address',
    label: '地址',
    width: 130,
    visible: true,
    headerRender: () =>
      h(ElInput, {
        ...ElInput.$el,
        ...ElInput.$attrs,
        size: 'small',
        placeholder: '请输入内容',
        modelValue: search.value,
        'onUpdate:modelValue': (value: any) => {
          search.value = value;
        },
      }),
  },
复制代码

 

3.在渲染函数中通过ref访问Dom元素

(1)vue3如何在模板语法中使用ref:

<div ref="divRef"></div>
const divRef = ref(); // 初始值需要赋值为空,或者null,变量名一定要和模版中的ref一致
console.log(divRef.value.$el.click());

(2)在h渲染函数中使用并访问ref:

const divRef = ref();

h('div', {
   ref: divRef, // 此处ref的值是divRef变量,不可写成 “divRef” 字符串,否则访问不到
}, "ref demo")

 

posted @   rachelch  阅读(3703)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2018-05-04 [微信小程序] -- wxss引用外部css文件及iconfont
2018-05-04 v-show, v-if, 以及动态组件的区别
点击右上角即可分享
微信分享提示