jsx中插槽的寫法

作用域插槽

  • scopedSlots: (2.6.0+) 一個暴露傳入的作用域插槽的對象。也以函數(shù)形式暴露普通插槽。
export default {
render () {
    return (
        <el-table-column width="140" {...renderInput()}></el-table-column>
      )
   },
methods: {
    renderInput () {
        return {
            scopedSlots: {
                default: ({row, index}) => {
                    // ...
                }
            }
        }
    }
}
}
<el-table-column label="WBS編號" prop="wbs" align="center" width="140" scopedSlots={{
    default: ({row, index}) => {
    // ...
    }</el-table-column>                 
}}></el-table-column>
  • 多個作用域插槽
const scopedSlots = {
'option-label': renderOptionLabel,
'value-label': renderValueLabel}

  // 渲染valueLabel
  renderValueLabel ({ *node* }) {
   return <div style={{display: node.isBranch ? 'none' : 'block'}}>{ node.label }</div>
  }

普通插槽

可以通過this.$slots 訪問靜態(tài)插槽內(nèi)容,每個插槽都是一個VNode數(shù)組

render() {
  // `<div><slot></slot></div>`
  return createElement('div', this.$slots.default)
}
  • 在函數(shù)式組件中,this.$slots.default => context.children

slots與children的區(qū)別

<my-functional-component>
  <p v-slot:foo>
    first
  </p>
  <p>second</p>
</my-functional-component>

children 會獲得兩個段落標(biāo)簽,slots().default 只會傳遞第二個匿名段落

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

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

  • Test Vue.js Slots in Jest 測試Vue.js中的Slots插槽 Learn how to ...
    Revontulet閱讀 3,100評論 0 1
  • Vue的組件提供了一個非常有用的特性,slot插槽,它讓組件的實現(xiàn)變的更加靈活。我們平時在開發(fā)組件庫的時候,為了讓...
    LoveBugs_King閱讀 5,448評論 0 0
  • vm.$data 類型:Object 詳細(xì): Vue 實例觀察的數(shù)據(jù)對象。Vue 實例代理了對其 data 對象屬...
    JK丶帝閱讀 320評論 0 0
  • 從接觸angularjs1.x開始,使用并開發(fā)過很多組件和指令,它能極大的擴(kuò)展web的業(yè)務(wù)處理能力,而且代碼很簡潔...
    老鼠AI大米_Java全棧閱讀 3,556評論 0 4
  • 相信大家都或多或少的在 code 中見過 或使用過 Render,如果你對它還是一臉懵逼,那就快上車!今天就帶你來...
    ZHero_閱讀 7,442評論 0 5

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