当前位置: 首页 > news >正文

成功网站建设案例赣州模板建站开发

成功网站建设案例,赣州模板建站开发,上海网站制作库榆,短视频营销案例使用js对象来描述UI更加的灵活。“这种对象”在vue框架中被称为虚拟DOM,渲染函数内部可以创建虚拟DOM,然后vue.js可以将其内容进行渲染。 1.渲染器的介绍 渲染器的作用就是把虚拟DOM渲染为真实DOM 思考下,我们有一个虚拟 DOM,如…

使用js对象来描述UI更加的灵活。“这种对象”在vue框架中被称为虚拟DOM,渲染函数内部可以创建虚拟DOM,然后vue.js可以将其内容进行渲染。

1.渲染器的介绍

渲染器的作用就是把虚拟DOM渲染为真实DOM

思考下,我们有一个虚拟 DOM,如何将它转换为真实 DOM

const vnode = {tag: 'div',props: {onClick: () => alert('hello')},children: 'click me'
}

2.实现渲染函数renderer(只考虑创建没有考虑更新逻辑情况下)

  1. 两个参数。参数vnode表示虚拟 DOM 对象,container表示一个真实 DOM 元素,作为挂载点,渲染器会把虚拟 DOM 渲染到该挂载点

  2. 使用vnode.tag作为创建的dom标签el

  3. 遍历vnode.props,将属性 事件添加到DOM上(事件即给元素添加监听事件;)

  4. 处理 children(如果 children 是字符串,说明它是元素的文本子节点用createTextNode;如果children是数组则递归调用render函数渲染子节点并挂载到el元素下)

  5. 将元素添加到挂载节点container下

<div id="app"></div><script>// 手写render函数将自己定义的vnode对象渲染到页面/*** @vnode 虚拟 DOM 对象* @container 一个真实 DOM 元素,作为挂载点,渲染器会把虚拟 DOM 渲染到该挂载点*/function render(vnode, container) {// 使用vnode.tag作为创建的dom标签ellet el = document.createElement(vnode.tag);// 遍历vnode.props,将属性 事件添加到DOM上(事件即给元素添加监听事件;)for (let key in vnode.props) {// 判断如果为事件则将其设置到el中if ((/^(on)/).test(key)) {el.addEventListener(key.substr(2).toLowerCase(), vnode.props[key]);}}// 处理 children(字符串和数组)if (typeof vnode.children === "string") {el.appendChild(document.createTextNode(vnode.children));} else if (Array.isArray(vnode.children)) { //是数组进行遍历并递归调用render方法vnode.children.forEach(child => {render(child, el);});}// 将元素添加到挂载节点container下container.appendChild(el);}// render函数测试const container = document.getElementById('app')const vnode = {tag: 'div',props: {onClick: () => alert('hello')},// children: 'click me'children: [{tag: 'h1',props: {onClick: () => alert('h1')},children: '这是h1'},{tag: 'span',props: {onClick: () => alert('span')},children: '这是span'}]}render(vnode, container)</script>

http://www.yayakq.cn/news/162784/

相关文章:

  • 广西建设职业技术学院贫困生网站东莞网站建设(曼哈顿信科)
  • 网站运营工作的基本内容做搜狗网站优化
  • 建设证书查询官方网站互联网如何做推广
  • 建设方面的知识 网站一个完整的营销策划方案范文
  • 台州免费做网站制作网站在哪里
  • 大连网站制作机构深圳电商网站
  • 建设银行企业网站银行31省份新增本土427 1662
  • 网站空间到期了怎么办免费建站网站一站式
  • 威海那家做网站好oppo开放平台
  • 做网站的备案资料义乌跨境电商公司前十名
  • 用帝国cms做视频网站保定市城乡建设局官方网站
  • 网站支付接口怎么做新冠数据实时更新
  • 专业的网站制作公司机电类网站模板
  • 怎么设立网站赚广告费兰甘肃网站建设
  • 网站推广 营销制作微信的网站有哪些
  • 怎么看一个网站有没有做301北京十大室内设计工作室
  • 门户网站开发请示苏州公司
  • 沧州铂艺科技网络有限公司上海网站seoseodian
  • 个人网站是商业的吗一站式服务就像一个什么
  • 怎样设计个人网站html5 音乐网站
  • 宏杰zkeys网站模板青岛高端网站开发
  • 做金融的网站上海松江建设发展有限公司网站
  • 高端网站建设 来磐石网络考研门户网站的建设
  • 网站备案通讯地址传奇网页链接
  • 网站建设误期违约金赔偿限额wordpress wmv
  • 高端的电影网站自动注册wordpress账号软件
  • 互站网源码商城wordpress密码字典
  • 公装网站怎么做c2c跨境电商平台有哪些?
  • 西安网站优化排名推广做自己的游戏网站
  • 长沙做无痛肠镜东大医院l网站网站类别页面怎么做