组合模式

组合模式

  • vue2中的createElement()
// @returns {VNode}
createElement(
  // {String | Object | Function}
  // 一个 HTML 标签名、组件选项对象,或者
  // resolve 了上述任何一种的一个 async 函数。必填项。
  'div',

  // {Object}
  // 一个与模板中 attribute 对应的数据对象。可选。
  {
    // (详情见下一节)
  },

  // {String | Array}
  // 子级虚拟节点 (VNodes),由 `createElement()` 构建而成,
  // 也可以使用字符串来生成“文本虚拟节点”。可选。
  [
    '先写一些文字',
    createElement('h1', '一则头条'),
    createElement(MyComponent, {
      props: {
        someProp: 'foobar'
      }
    })
  ]
)
function createElement(tag, attr, children) {
  const element = document.createElement(tag)
  if (typeof children === undefined) {
    children = attr
  } else {
    for (let i in attr) {
      element.setAttribute(i, attr[i])
    }
  }
  if (typeof children === 'string') {
    const textNode = document.createTextNode(children)
    element.appendChild(textNode)
  } else {
    children.forEach(item => {
      if (typeof item === 'string') {
        item = document.createTextNode(item)
      }
      element.appendChild(item)
    })
  }
  return element
}
const body = document.querySelector('body')
body.appendChild(createElement(
    'div', 
    { class: 'box' }, 
    [
      'hello universe', 
      createElement('a', { href: 'www.baidu.com' }, '百度')
    ]
  )
)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概念   将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性...
    小小的开发人员阅读 3,276评论 0 0
  • 之前做一个需求,设计一个设置程序,设置程序中包含不同的页面,页面中又有不同的分组,每个分组下面又有不同的项,每个项...
    java高级架构F六阅读 1,274评论 0 0
  • 目录 从生活场景出发,映射组合模式 组合模式的理论概念 组合模式的实现 组合模式在源码中的应用 组合 “优于” 继...
    幺鹿阅读 3,418评论 0 0
  • 组合模式(Composite) 在现实生活中,存在很多“部分-整体”的关系,例如,大学中的部门与学院、总公司中的部...
    Acton_zhang阅读 3,199评论 0 1
  • 久违的晴天,家长会。 家长大会开好到教室时,离放学已经没多少时间了。班主任说已经安排了三个家长分享经验。 放学铃声...
    飘雪儿5阅读 12,189评论 16 22