Done
- Work 7 hours
- EnergyClub - Compare Price Success function
- CSS : mobile adjustment
- How container's prop works
- Make a component for all Compare function page.
- EnergyClub - Compare Price Success function
- Pair Learning (1 hour)
- Meditation (15mins)
- Podcast (30天認(rèn)知訓(xùn)練營)
Thoughts:
- 30天認(rèn)知訓(xùn)練營 3- 什么樣的人能不被命運無常所傷害(斯多葛哲學(xué)的生活藝術(shù))
* 我必然會遭遇負(fù)義、無禮、背信、惡意和自私自利之人——我以提醒自己這句話開始每一天。
* 斯多葛(Stoic)
第一,總是設(shè)想最壞情形,假設(shè)一切已被命運奪走。
羅曼羅蘭說,“真正的勇氣是知道生活的真相,卻仍然熱愛生活?!?他肯定是個斯多葛。
第二,控制能控制的,無法控制的要放手。
什么是我們無法控制的?環(huán)境。什么是我們能控制的?我們對環(huán)境的態(tài)度。
人們想改變世界,斯多葛想改變自己。
第三,對抗命運對未來的安排,但接受已成現(xiàn)實的過去與現(xiàn)在,仿佛它是宿命。
第四,克己。
假想最壞情形可能發(fā)生之外,斯多葛會往前再走一步。塞雷卡說有時得按照最壞情形已經(jīng)發(fā)生那樣去生活。光假想失去全部財富還不夠,還要時不時真正過苦日子,給自己主動制造苦難,忍饑挨餓。
推崇克己,是為了獲得意志力、勇氣和自制力。
第五,反思。
斯多葛也有三省吾身:今天改正了什么?今天抵制了什么?今天有什么進(jìn)益?
斯多葛入世,積極參與生活,但集參與者與旁觀者兩個角色于一身,一邊作為,一邊又觀察自己的作為,并按斯多葛準(zhǔn)則來評估:
* 你有沒有設(shè)想過最壞情形?
* 你有沒有區(qū)分能控制與不能控制的事情?
* 你有沒有內(nèi)化目標(biāo)?
* 你是否沉湎于過去,而忘了注視未來?
* 你有沒有克己?
* 對一個斯多葛來說,死亡是終極測試。一個標(biāo)準(zhǔn)的斯多葛坦然接受突然來臨的死亡,因為他每一天都是向死而生,因此已經(jīng)過了自己想過的一生,隨時可死。
- 30天認(rèn)知訓(xùn)練營 2- 什么是思考,怎樣更好的思考
Intuition Pumps and Other Tools for thinking(直覺泵與其他思維工具)
意向(intentionality): 心智在場,表達(dá),代表事物的能力
意識(consciousness):知道“自我”
意志(will):就是自由選擇
機器人就是人類自己,基因的人類的造物主,從基因不得不賦予人類學(xué)習(xí)能力,授權(quán)自主決策的那一天起,基因失控,人類自立,就成為注定的結(jié)果。
- 30天認(rèn)知訓(xùn)練營 5- 為什么你應(yīng)該讀歷史
- The lessons of History, by Will & Ariel Durant(歷史的教訓(xùn))
我們能從歷史上學(xué)到什么?
第一,一切皆有可能,沒有必然
第二:歷史不會重復(fù),但重視押韻 -- 最黑暗處會有光明,極光明處黑暗滋生,仿佛在循環(huán),但也只是事后才能確定
第三:人靠不住,制度也靠不住 -- 圣人不死,大盜不止
你的有時寬容,有時嚴(yán)苛,時而忠誠,時而離心,有時為鷹,有時為鴿
我們今天所傳承的遺產(chǎn)比此前任何時候都更為豐富。它比古代雅典政治家伯利克里的豐富,因為包含了他以后的希臘文化精華,比達(dá)芬奇豐富,因為包含文藝復(fù)興的其他巨匠,比伏爾泰的豐富,因為包含了全部啟蒙運動的結(jié)晶。如果歷史有進(jìn)步可言,那不止因為我們生下來時比前任更健康,更美好,更聰明,而是因為我們降生于更豐富的遺產(chǎn)之中,被更高的底座托起,與此前只是的藝術(shù)的全部成就為基,隨著他上升。
所謂歷史,就是這遺產(chǎn)的創(chuàng)造和記錄,而所謂進(jìn)步,就是它的拓展。保存。傳承和使用。過往不再只是一連串災(zāi)難記錄,歷史學(xué)家也無需悲嘆在人類純在中無從找到意義
- 30天認(rèn)知訓(xùn)練營 6- 怎樣才能達(dá)到任何目的
Learned
- English:
- occidental culture vs oriental
Draft:
- How container's prop works.
const mapDispatchToProps = {
onSubmit
}
export default connect(null, mapDispatchToProps)(CompareView)
//in actually works as :
<CompareView onSubmit={onSubmit} />
//and need to define: PropsType
CompareView.propTypes = {
onSubmit: PropTypes.func.isRequired
}
- Rudex
Reducer必須是一個純函數(shù),他根據(jù)action處理state的更新,如果沒有更新或遇到未知action,則返回舊state;否則返回一個新state對象。注意:不能修改舊state,必須先拷貝一份state,再進(jìn)行修改,也可以使用Object.assign函數(shù)生成新的state。另外,state參數(shù)需先進(jìn)行初始化。實例代碼如下:
//初始狀態(tài)
let initialState = {hiddenClass: 'g-hidden',currentIndex:0};
let sliderReducer = function (state = initialState, action) {
switch(action.type){
case sliderAction.SHOW_SLIDER:
return {hiddenClass: '',currentIndex:action.index};
case sliderAction.RIGHT_SLIDER:
if(state.currentIndex == action.length-1){
return Object.assign({}, state, {currentIndex:0});
}else{
return Object.assign({}, state, {currentIndex:Number.parseInt(state.currentIndex)+1});
}
default:
return state;
}
}
export default sliderReducer;
通過查看Redux源碼得知,新舊state的比較只是對引用地址的比較,如果reducer只是返回舊state(即previousStateForKey)的更新,新state(nextStateForKey)實際上和舊state引用的都是同一塊內(nèi)存地址,所以無論如何更改,新舊state始終保持相同。這就是為什么reducer必須是純函數(shù)的原因。
- Store 是把Action、Reducer聯(lián)系到一起的對象。Store 有以下職責(zé):
1.維持應(yīng)用的 state;
2.提供 getState() 方法獲取 state;
3.提供 dispatch(action) 方法更新 state; ---- [圖片上傳失敗...(image-eb11c3-1525911738947)]
UI更新state 的唯一途徑,通過dispatch方法發(fā)起action,喚起對應(yīng)的reducer更新state。
4.通過 subscribe(listener) 注冊監(jiān)聽器;
5.通過 subscribe(listener) 返回的函數(shù)注銷監(jiān)聽器。