问答

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

作者:admin 2021-07-28 我要评论

非MVVM项目 比如定义组件 component-a 组件: const ComponentA = function(ele){ this.init(ele);}ComponentA.prototype = { constructor : ComponentA, init:f...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

非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 自动实例化呢?

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 前端自定义组件如何实现追加元素的自动

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

  • fs.writeFileSync is not a function

    fs.writeFileSync is not a function

  • influxDB的启动相关问题

    influxDB的启动相关问题

  • nginx代理Vue项目端口出现占用,并且接

    nginx代理Vue项目端口出现占用,并且接

腾讯云代理商
海外云服务器