V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
MerlinLord
V2EX  ›  问与答

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

  •  
  •   MerlinLord · 2019-01-10 15:44:10 +08:00 · 1836 次点击
    这是一个创建于 2144 天前的主题,其中的信息可能已经有所发展或是发生改变。

    像这样,能方便很多。

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

    应该是,先插入一个组件标签,然后销毁父 vue 实例,接着重建父 vue 实例.
    TomVista
        6
    TomVista  
       2019-01-10 16:46:47 +08:00
    @MerlinLord vm.$forceUpdate(); 这个函数,
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2241 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 01:41 · PVG 09:41 · LAX 17:41 · JFK 20:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.