Redux自己手寫乙個簡化版全面的redux

2021-08-27 21:35:57 字數 1402 閱讀 5871

import react from 'react'

const renderscreen = (screen)=>:$`;

};const renderbutton = (button)=>;

//1.全域性渲染方法

//渲染螢幕

renderscreen(state.screen);

//渲染按鈕

renderbutton(state.button);

};//2.對狀態的修改交給純函式去做

//定義修改資料方法

const changestatefn = (state,action)=>;

state.screen.title = action.title;

console.log(action,state);

break;

case 'stop_video':

state.isplaying = false;

//修改按鈕

state.button = ;

state.screen.title = action.title;

console.log(action,state);

break;

case 'play_next':

state.screen.title = action.title;

break;

default:

}};//3.所以我們定義乙個createstore來管理全域性狀態

//直接暴露資料不安全,會帶來不可預知的錯誤

const createstore = (changestatefn)=>,

button:

};//宣告監聽陣列

let listeners = ;

//獲取資料方法

const getstate = ()=>state;

//來修改資料

const dispatch = (action)=> ;

//提供乙個訂閱方法

const subscribe = (listener)=>;

//暴露方法

return ;

};//4.使用createstore函式來建立資料逇管理物件

const store = createstore(changestatefn);

//當狀態發生修改時候

store.subscribe(()=>);

//5.全域性初始化

//6.對按鈕進行監聽

document.queryselector("#button").addeventlistener('click',()=>);

settimeout(()=>);

},2000);

}else );

}});

手寫乙個簡化版Tomcat

我們啟動tomcat時雙擊的startup.bat檔案的主要作用是找到catalina.bat,並且把引數傳遞給它,而catalina.bat中有這樣一段話 bootstrap.class是整個tomcat 的入口,我們在tomcat原始碼裡找到這個類,其中就有我們經常使用的main方法 這個類有兩...

分享自己寫的乙個簡化版LOG輸出巨集

extern int verbose define dbg xlog 4,dbg va args define info xlog 3,inf va args define wrn xlog 2,wrn va args define err xlog 1,err va args define out...

如何實現乙個簡化版的 jQuery

對於操作dom來說,jquery是非常方便的乙個庫,雖然如今隨著react,vue之類框架的流行,jquery用得越來越少了,但是其中很多思想還是非常值得我們學習的,這篇文章將介紹如何從零開始實現乙個簡化版jquery。在這裡,我把這個庫命名為 clus class 的諧音 下面以 符號代替。首先需...