vue Render 函數(shù)

最近在用elementUI寫管理后臺(tái)的時(shí)候,遇到了需要在el-table表頭自定義的功能,所以搜索了下vue官網(wǎng),發(fā)現(xiàn)了createElement這個(gè)方法;之前在做react native畢設(shè)的時(shí)候,倒是用到了renderHeader的方法。

// @returns {VNode}
createElement(
  // {String | Object | Function}
  // 一個(gè) HTML 標(biāo)簽字符串,組件選項(xiàng)對(duì)象,或者一個(gè)返回值類型為String/Object的函數(shù),必要參數(shù)
  'div',
  // {Object}
  // 一個(gè)包含模板相關(guān)屬性的數(shù)據(jù)對(duì)象
  // 這樣,您可以在 template 中使用這些屬性.可選參數(shù).
  {
    // (詳情見下一節(jié))
  },
  // {String | Array}
  // 子節(jié)點(diǎn) (VNodes),由 `createElement()` 構(gòu)建而成,
  // 或簡(jiǎn)單的使用字符串來生成“文本結(jié)點(diǎn)”。可選參數(shù)。
  [
    '先寫一些文字',
    createElement('h1', '一則頭條'),
    createElement(MyComponent, {
      props: {
        someProp: 'foobar'
      }
    })
  ]
)

從例子中可以看到,createElement方法是可以嵌套的

<template>
  <el-table :data="tableData" border style="width: 100%">
    <el-table-column inline-template label="日期" width="180" :render-header="renderHeader">
      <div>
        <el-icon name="time"></el-icon>
        <span style="margin-left: 10px">{{ row.date }}</span>
      </div>
    </el-table-column>
  </el-table>
</template>
<script>
  data() {
      return {
        tableData: [{
          date: '2016-05-02
        }]
      }
    },
    methods: {
      renderHeader(createElement, { column }) {
        return createElement(
          'div',
          [
            createElement('a', ['==' + column.label + '=='], {
              attrs: {
                href: '#test'
              }
            })
          ]
        );
      }
    }
</script>

參考文章

https://github.com/ElemeFE/element/issues/1309

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容