1. 程式人生 > >web開發常見問題整理

web開發常見問題整理

This指向問題
1. 在方法中誰呼叫this就指向誰
在物件方法中呼叫
這裡寫圖片描述
事件繫結
這裡寫圖片描述
事件監聽
這裡寫圖片描述
2. 在建構函式或者建構函式原型物件中this指向建構函式的例項
這裡寫圖片描述
在專案中this指向問題的常見示例:
這裡寫圖片描述
上面1:
因為在setInterval中要設定this.setState(),而此時的this已經指向window而不是class的this:
這裡寫圖片描述
這裡寫圖片描述

上面這種情況就是this指向出現問題的一種情況:
解決方法:1.先把this賦值給that,函式內部使用that
2.使用箭頭函式
這裡寫圖片描述
這裡寫圖片描述
針對以上這種情況的解釋:
也就是誰呼叫的函式,函式體中的this就指向誰。沒有使用箭頭函式時this出現在全域性函式setInterval ()中的匿名函式裡,並沒有某個物件進行顯示呼叫,所以this指向window物件。這時直接使用是指向了window,e而不是class類。
當使用箭頭函式時this指向函式的宿主物件了。

但是有一種情況需要注意就是多層巢狀的箭頭函式,原則就是:
1.箭頭函式的this繫結看的是this所在的函式定義在哪個物件下,繫結到哪個物件則this就指向哪個物件。
2.如果有物件巢狀的情況,則this繫結到最近的一層物件上。
頁面佈局的問題
1. 假如說構造一種這樣的佈局:
這裡寫圖片描述
這是可以使用calc()函式:
這裡寫圖片描述

注意:calc()在css3中和less中的用法不太一樣,在less中使用的方式是
width: calc(~”100%-20px”);
也可以使用彈性佈局來實現:
這裡寫圖片描述
2. 各種劇中效果的實現:
水平居中元素:
這裡寫圖片描述
這裡寫圖片描述
垂直居中元素

這裡寫圖片描述
這裡寫圖片描述
水平垂直居中元素
這裡寫圖片描述


……詳情參考https://blog.csdn.net/qq_26941173/article/details/80042271
同時flex佈局參考
https://blog.csdn.net/qq_26941173/article/details/80379102