鍍金池/ 問(wèn)答/Java  Linux  網(wǎng)絡(luò)安全  HTML/ vue如何運(yùn)行時(shí)加載模版,且調(diào)用新創(chuàng)建組件

vue如何運(yùn)行時(shí)加載模版,且調(diào)用新創(chuàng)建組件

目的:想利用字符串的模版加上slot實(shí)現(xiàn)動(dòng)態(tài)表單。
構(gòu)建form.js:

render(h){

let layout = h({
  name:'layout',
  template:'<div class="layout"><slot></slot></div>'
  });
  let child = h({
    name:'child',
    template:'<a href="javascript:void(-1)">666</a>'
  });
  let c = h({
      name:'c',
      template:'<layout><child></child></layout>',
      components:{layout,child}
    });
  return c

}
運(yùn)行出錯(cuò),請(qǐng)問(wèn)如何更改?
圖片描述

圖片描述

如果單獨(dú)返回child 成功,請(qǐng)問(wèn)為什么?怎么調(diào)用多個(gè)引用組件?作用域的問(wèn)題?
期待您的答案,謝謝!

回答
編輯回答
墨染殤
  1. let child = {name:'child',template:'<div><label>child:</label><input
    value="ddd"></input></div>'};

  2. let tp = {name:'tp',template:'<div class="layout">9999:<slot
    name="sss"></slot></div>'};

  3. let view = {name:'tpz',template:'<div><tp><child

       slot="sss"></child></tp></div>',components:{tp,child}};
  4. return h(view)

這種demo可以實(shí)現(xiàn)

2018年2月8日 21:57