react知識(二)重寫JSX編譯原理

2021-09-24 06:33:27 字數 1437 閱讀 5746

呼叫方法

import  from

'./self-jsx';

let objjsx = createelement(

'div',

},createelement(

'h2',

,'\u7cfb\u7edf\u63d0\u793a'

),createelement(

'div',

,'\u6e29\u99a8\u63d0\u793a\uff1a\u8bed\u6cd5\u9519\u8bef\uff01'

),'\u672c\u64cd\u4f5c\u5c31\u662f\u4e00\u4e2a\u6d4b\u8bd5\uff01'

);render(objjsx, root);

複製**

createelement方法

/*

* create-element:建立jsx物件

* 引數:至少兩個 type/props,children這個部分可能沒有可能有多個

*/function createelement(type, props, ...childrens) // 下面要用in方法

let ref, key;

if ('ref'

in props)

if ('key'

in props)

return ,

ref,

key};}

複製**

render方法

function render(objjsx, container, callback)  = objjsx,

= props;

let newelement = document.createelement(type);

for (let attr in props)

switch (attr.touppercase())

}break;

case

'children':

/** 可能是乙個值:可能是字串也可能是乙個jsx物件

* 可能是乙個陣列:陣列中的每一項可能是字串也可能是jsx物件

*///->首先把乙個值也變為陣列,這樣後期統一運算元組即可

!(value instanceof array) ? value = [value] : null;

value.foreach((item, index) => else

});break;

default:

newelement.setattribute(attr, value);

}} callback && callback();

}export ;

複製**

WPF自定義控制項(二) 重寫原生控制項樣式模板

原文 wpf自定義控制項 二 重寫原生控制項樣式模板 開發過程中,我們有時候用wpf原生的控制項就能實現自己的需求,但是樣式 風格並不能滿足我們的需求,那麼我們該怎麼辦呢?自定義樣式與模板。一 樣式 在wpf中我們可以使用style來設定控制項的某些屬性值,並使該設定影響到指定範圍內的所有該類控制項...

matlab二重定積分 二重積分 matlab

第六章 用matlab 計算二重積分 由於二重積分可以化成二次積分來進行計算,因此只要確定出幾分區域,就可以反覆 使用int 命令來計算二重積分。例6.4.1 計算二重積分yd ixedxdy d是由直線 x 0,y 1,y x 所圍區域 解該積分可以寫成yy idyxe dx或yy idxxe d...

二重迴圈解題思路

題目 使用二重迴圈列印如下圖形 分析 首先要明確我們需要列印的種類有 字串 字串 空格 比如第一行,先列印了 4個空格 然後列印了乙個 我們分析一下每行的具體列印情況 第0行 先列印 4個空格,然後列印 1個 第1行 先列印 3個空格,然後列印 3個 第2行 先列印 2個空格,然後列印 5個 第3行...