V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
binhb
V2EX  ›  Vue.js

h 函数中怎么写 template 占位符

  •  
  •   binhb ·
    ZingerLittleBee · Mar 31, 2021 via iPhone · 3004 views
    This topic created in 1863 days ago, the information mentioned may be changed or developed.

    各位吴彦祖们,h 函数中怎么写 template 占位符

    Supplement 1  ·  Apr 1, 2021
    Fragment 确实可以占位
    新的问题又来了: h 函数中怎么写具名插槽, 比如这样 `<template v-slot:header>xxx</template>`
    Supplement 2  ·  Apr 1, 2021

    首先感谢各位大佬指点

    总结一下:

    1、h 函数中写 template 占位符

    import { Fragment } from "vue"
    h(Fragment, {}, [])
    

    2、h 函数中写具名插槽, 比如这样 <template v-slot:header>xxx</template>

    h(HelloWorld, null, {
     default: () => h('div', null, 'default'),
     header: () => h('div', null, 'header xx')
     })
    

    3、JSX 中写具名插槽

    setup() {
      const slotsTemp = {
        default: () => <div>jsx-default</div>,
        dropDown: () => <Fragment>jsx-dropDown</Fragment>
      }
    
      return () => (
        <div>
          JSX
          <slots v-slots={slotsTemp}></slots>
        </div>
      )
    }
    
    slot.vue
    <div class="default">
      <slot></slot>
    </div>
    <div class="dropdown">
      <slot name="dropDown"></slot>
    </div>
    

    子组件定义具名插槽: this.$slots.default(); this.$slots.dropDown()

    5 replies    2021-04-01 14:12:19 +08:00
    cereschen
        1
    cereschen  
       Mar 31, 2021
    import { Fragment } from "vue"
    binhb
        2
    binhb  
    OP
       Mar 31, 2021 via iPhone
    @cereschen 感谢感谢,这就去试试,用来写具名插槽
    ubbcou
        3
    ubbcou  
       Apr 1, 2021
    h(HelloWorld, null, {
    default: () => h('div', null, 'default'),
    header: () => h('div', null, 'header xx')
    })
    ubbcou
        4
    ubbcou  
       Apr 1, 2021
    binhb
        5
    binhb  
    OP
       Apr 1, 2021
    @ubbcou #3 正解, 感谢
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   972 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 19:13 · PVG 03:13 · LAX 12:13 · JFK 15:13
    ♥ Do have faith in what you're doing.