前端自定义组件如何实现追加元素的自动实例化

发布于 2022-09-12 03:05:23 字数 1018 浏览 25 评论 0

非MVVM项目
比如定义组件 <component-a> 组件:

const ComponentA = function(ele){
    this.init(ele);
}
ComponentA.prototype = {
    constructor : ComponentA,
    init:function(ele){
      this.createElement(ele,this._getData(ele));
    },
    createElement:function(ele,data){
      this.getTargetElement([...this.ele.attributes],data)
      this._replaceElement(ele,targetEle);
    },
    getTargetElement(attributes,data){
      ……
    },
    getData(ele){
      ……
    },
    _replaceElement(ele){
      ……
    }
}

$("component-a").each(function(){
  new ComponentA(this);
})

使用方法为以下两种:

<component-a name="test1"></component-a>

<div name\="test2"></div> 
$("\[name=test2\]").componentA({params:params});

如果追加元素$(body).append('<component-a name="test3"></component-a>'),test3 在 dom 中存在还是以原始文本存在,而非替换成 <component-a> 组件。
那么怎么实现 <component-a> 才能让 test3 自动实例化呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文