我正在编写一些 Web 组件,我想使用 jsViews $.link 功能作为我的模板引擎。我已经能够使用 $.render 来替换 ShadowRoot 克隆内容的 .innerHTML,但我只能通过以下方式使用 $.link 。只是看起来“肮脏”,必须添加一个额外的 div 来链接。有一个更好的方法吗?这里有任何性能问题吗?:
const template = document.createElement('template');
template.innerHTML = `<div id="todo-item-tmpl"></div>`;
class TodoItem extends HTMLElement {
constructor() {
this._tmpl = $.templates('#todoItems');
this._shadowRoot = this.attachShadow({ 'mode': 'open' });
this._shadowRoot.appendChild(template.content.cloneNode(true));
this._todoTmpl = this._shadowRoot.querySelector('#todo-item-tmpl');
this._tmpl.link(this._todoTmpl, this._myDataObj);
}
}
慕码人2483693
相关分类