MerlinLord
V2EX  ›  问与答

vue 有没有办法直接在 jsx 里面插入自定义组件?

  •  
  •   MerlinLord · Jan 10, 2019 · 2755 views
    This topic created in 2856 days ago, the information mentioned may be changed or developed.

    像这样,能方便很多。

     return (
          <div class="input-group">
            {this.$slots.default && this.$slots.default.map(item => {
            //如果 item 是个 vue component
             return item.componentOptions ? (<item></item>) : (item)
            })}
          </div>
        );
    
    
    6 replies  •  2019-01-10 16:46:47 +08:00
    oyhw92
    oyhw92
    Jan 10, 2019
    1
    //如果 item 是个 vue component
    return item.componentOptions ? this.$createElement(item) : (item)
    MerlinLord
    MerlinLord
    OP
    Jan 10, 2019
    2
    @oyhw92 #1 cannot:(
    WenJimmy
    WenJimmy
    Jan 10, 2019
    3
    <item /> ?
    TomVista
    TomVista
    Jan 10, 2019
    4
    渲染出 item 后,重新声明定义一个 item 组件.
    TomVista
    TomVista
    Jan 10, 2019
    5
    @MerlinLord 抱歉,我说的是错的.

    应该是,先插入一个组件标签,然后销毁父 vue 实例,接着重建父 vue 实例.
    TomVista
    TomVista
    Jan 10, 2019
    6
    @MerlinLord vm.$forceUpdate(); 这个函数,
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1362 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 18:51 · PVG 02:51 · LAX 10:51 · JFK 13:51
    ♥ Do have faith in what you're doing.