模擬 React使用效果寫的元件開發框架

2021-09-08 17:44:31 字數 908 閱讀 3368

在上個月 20 號時寫的 js模板引擎的乙個開篇提到說是為了想模擬react 的乙個東西出來,然後,總算弄了乙個像個樣子的來了。

本來是想再寫乙個系列的文章來著,但是想想寫出來的東西也沒有什麼,寫法細節什麼的,還有元件物件的管理也不是處理的很好,沒有正確的銷毀。

但是,難得做出來的東西,總還是分享出來,所以,在這裡分想一下簡單的用法,然後原始碼放 碼雲 好了。因為還沒有能力寫jsx這種解析器,所以就只能通過字串來寫模板內容了,而模板的一些解析就用到是之前寫的 jstemplate.

寫的時候一直強忍著不要去看react 的實現原理,先做出乙個模樣再說,然後就根據自己用過的react基礎用法的樣子模擬相似的用法。不想寫乙個系列也是因為沒有研究過react 的原理,寫成系列會怕會誤導人。整理完這個,要好好的去學習react 的實現才行。

框架用的es5 的語法寫的,然後在頁面用時,用了es6 的語法(其實 es6 的class 這些其實只是個語法糖,js的本質都還是原型鏈)

基於框架寫以元件形式寫的頁面:

頁面的效果以及頁面監視的資料變化效果:

碼雲原始碼

**寫的比較亂,大神勿笑,一系列的 html 檔案是開發過程的一次次改進的結果,最新的**是以 myreact.x 的資料夾

ps:2019-01-25

去看了 react 的一些解析,原來react 它真的是每次都生成完整的dom(博主開始的思路也是每次都生成新的dom,但是遇到的問題就是直接覆蓋新dom的話,會導致資料丟失,後面才想到現在這種更新方式),只是在更新前會根據 dom 的樹結構進行中序遍歷,標籤不一致的替換,便簽一致的更新值,這樣已經插入了的dom就不會被新dom覆蓋

storybook 用react寫元件

在專案中的src資料夾下新建乙個components資料夾,用來存放自己寫的元件檔案,此處照書上敲了個登入元件,取名為login.js。import react from react export class login extends react.component login check ren...

使用Antd元件在React中寫列表樣式

buyername 王路飛 tradername 託 tradermobile 15112341234 transfercode gh1234567890 asktime wed mar 27 2019 10 03 15 gmt 0800 remark 備註備註備註備註 orderstatestr ...

React元件協同使用

元件協同的本質是對元件的一種組織 管理方式。1.元件巢狀 2.mixin 混入,把一段 混到元件中 一 元件巢狀 本質是父子關係。父元件 屬性 子元件 子元件 事件處理函式 委託 父元件 優點 邏輯清晰 父子關係 模組化 同步開發 封裝細節 缺點 編寫難度高 處理父子關係 無法掌握細節 例項 如下 ...