2018 07 27 漢得日記

2021-08-23 12:04:14 字數 1951 閱讀 3423

早上吳老師帶我們快速過了一下react的基礎知識,由於之前預習過,還是基本能聽懂的,但是還是有些點需要自己回頭鞏固。下午盡量使用react把上週的作業進行重構

react建立元件的三種方式及其區別

react推出後,出於不同的原因先後出現三種定義react元件的方式,殊途同歸;具體的三種方式:

函式式定義的無狀態元件

es5原生方式react.createclass定義的元件

es6形式的extends react.component定義的元件

1.無狀態函式式元件形式上表現為乙個只帶有乙個render方法的元件類,通過函式形式或者es6 arrow function的形式在建立,並且該元件是無state狀態的。具體的建立形式如下:

function hellocomponent(props, /* context */) 

}reactdom.render(, mountnode)

2.react.createclass與react.component區別

(1)函式this自繫結

react.createclass建立的元件,其每乙個成員函式的this都有react自動繫結,任何時候使用,直接使用this.method即可,函式中的this會被正確設定。

react.component建立的元件,其成員函式不會自動繫結this,需要開發者手動繫結,否則this不能獲取當前元件例項物件

當然,react.component有三種手動繫結方法:可以在建構函式中完成繫結,也可以在呼叫時使用method.bind(this)來完成繫結,還可以使用arrow function來繫結。

constructor(props) 

//使用bind來繫結

handlebuttonclick=() =>

})}

(2)元件初始狀態state的配置不同

react.createclass建立的元件,其狀態state是通過getinitialstate方法來配置元件相關的狀態;

react.component建立的元件,其狀態state是在constructor中像初始化元件屬性一樣宣告的。

(3)推薦使用

採用class的方式,**結構更加清晰,可讀性強,而且react官方也推薦使用這種方式定義元件。

過程中遇到的問題

1.import json的時候,由於 webpack的配置檔案裡的正則設定錯誤,導致loader無法正確載入json.

錯誤如下

test:/.*\.jsx?/,
正確的是去掉問號,否則他會把json與jsx一起進行轉譯

test:/.*\.jsx/,
2.在react裡如何取到dom元素。

不推薦的做法是像原生js的寫法一樣,給標籤加上id。

應當使用ref屬性(注意該屬性跟id一樣,同一值應當是唯一的),如下**:

componentdidmount()

});} render()

) }

}

而且,應當將函式執行在componentdidmount()裡,因為未render時,並找不到該子節點。

3.箭頭函式作為類的方法宣告時,需要外掛程式支援,需要install babel-preset-stage-0才能編譯,否則會報錯

handleclick=() =>

1.安裝

裝完之後,生成乙個新的專案,可以使用下面的命令:

npm start
注,預設埠是3030;

react部分規範

1.屬性統一小寫,元件首字母大寫,不然無法識別。

2018 07 11 漢得日記

今天下午進行了前端知識的摸底考核,交卷之後發現自己仍有很多不明白的知識點,所以在查資料的過程中總結了以下幾點 html中 1.ie無法調整那些使用px作為單位的字型大小 2.國外的大部分 能夠調整的原因在於其使用了em或rem作為字型單位 3.firefox能夠調整px和em,rem,但是96 以上...

2018 07 16 漢得日記

上午複習了上週的docker知識,並順利完成了上週作業。並編寫了 readme 但是在push到github上時出現了各種奇怪的問題,還待解決。我的github部落格 下午有部門經理來進行了我們研發中心的情況介紹,重點在於開源的企業級pass平台,豬齒魚開源社群。學習敏捷,構建高效團隊。團隊合作至關...

漢得面試題

盒子一共有四個屬性 分別為外邊距 margin 邊框 border 內邊距 padding 內容 content 注 如何計算寬度 盒子總大小的計算公式為 盒子的實際高度x盒子的實際寬度。元素實際寬度 盒子的寬度 左邊界 左邊框 左填充 內容寬度 右填充 右邊框 右邊界。元素實際寬度 盒子的高度 上...