通過原生JS實現React的虛擬Dom及渲染方法

2021-09-25 19:56:08 字數 822 閱讀 3509

jsx語法通過babel會轉換為react.createelement()形式的**,所以也是為什麼在引入react時,要將其命名為"react"。

// 實現react的createelement方法

const react =}}

// 實現渲染函式

const

render

=(vnode, container)

=>

// 解構賦值

const

= vnode;

// 原生方法建立dom元素

let ele = document.

createelement

(type)

;// 迴圈設定dom屬性

for(

let key in props)

ele.

setattribute

(key,props[key]);

}// 遞迴插屬性值

children.

foreach

( item =>

)// 在容器內新增元素

container.

(ele)

}// 測試,定義jsx語法

let div =

react<

/h1>very good!

"asdads"

>haha!

gogogo<

/div>

<

/span>

<

/div>

render

(div, window.root)

通過原生JS實現瀑布流布局

由於工作需要,花了幾天時間研究瀑布流布局。該布局可以使用原生js jquery 以及css3來實現,目前的工作場景不允許使用css3 主要是ie 所以本文主要針對原生js。一 需要掌握的知識點 document.body 與 document.documentelement的相容性 var html...

原生js實現Ajax

一般來說,大家可能都會習慣用jquery提供的ajax方法,但是用原生的js怎麼去實現ajax方法呢?jquery提供的ajax方法 ajax success function error function 原生js實現ajax方法 var ajax obj.send post function u...

原生js實現Ajax

ajax success function error function 原生js實現ajax方法 var ajax xhr.send datat應為 a a1 b b1 這種字串格式,在jq裡如果data為物件會自動將物件轉成這種字串格式 post function url,data,fn xhr...