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 @ 2023-05-04 19:04  rachelch  阅读(2419)  评论(0编辑  收藏  举报