MerlinLord
V2EX  ›  问与答

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

  •  
  •   MerlinLord · Jan 10, 2019 · 2503 views
    This topic created in 2691 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
        1
    oyhw92  
       Jan 10, 2019
    //如果 item 是个 vue component
    return item.componentOptions ? this.$createElement(item) : (item)
    MerlinLord
        2
    MerlinLord  
    OP
       Jan 10, 2019
    @oyhw92 #1 cannot:(
    WenJimmy
        3
    WenJimmy  
       Jan 10, 2019
    <item /> ?
    TomVista
        4
    TomVista  
       Jan 10, 2019
    渲染出 item 后,重新声明定义一个 item 组件.
    TomVista
        5
    TomVista  
       Jan 10, 2019
    @MerlinLord 抱歉,我说的是错的.

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