摘要:清空中所有信息它實現(xiàn)了瀏覽器和服務(wù)器全雙工通信建立在傳輸層上它允許服務(wù)端向客戶端傳遞信息,實現(xiàn)瀏覽器和客戶端雙工通信。
JS判斷對象中是否有某屬性
通過. 或者[]
let test = { name: "leemo" } test.name test["name"] test.age //undefined
可根據(jù) Obj.x!== undefined 判斷是否有該屬性,但是不能判斷屬性存在且值等于undefined的情況
in
如果指定的屬性存在于對象或原型鏈中,返回true
"name" in test //true
無法分辨該屬性存在于本身還是原型鏈上
hasOwnProperty()
test.hasOwnProperty("name")
只能判斷自身屬性
node.js自己寫服務(wù)器的方法//引入http模塊 var http = require("http"); //設(shè)置主機名 var hostName = "127.0.0.1"; //設(shè)置端口 var port = 8080; //創(chuàng)建服務(wù) var server = http.createServer(function(req,res){ res.setHeader("Content-Type","text/plain"); res.setHeader("Access-Control-Allow-Origin","*")//解決跨域 res.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); //解決跨域 res.end("hello world"); }); server.listen(port,hostName,function(){ console.log(`服務(wù)器運行在http://${hostName}:${port}`); });
在html代碼中添加
function getText(){ $(".text").load("http:127.0.0.1:8080"); }
即可用該頁面請求我們寫的web服務(wù)器
參考文檔
原理:先把一個子組件數(shù)據(jù)傳輸?shù)礁附M件,通過父組件傳輸?shù)搅硗庖粋€子組件,實現(xiàn)兄弟件組件通信
*待續(xù)
react 16.0以后的生命周期函數(shù)鉤子函數(shù)componentDidCatch 如果render()函數(shù)拋出錯誤,則會觸發(fā)該函數(shù)
16.3引入的兩個全新的生命周期函數(shù):
getDerivedStateFromProps
首先以前需要利用被刪除的那些生命周期函數(shù)才能實現(xiàn)的功能,都可以通過 getDerivedStateProps 的幫助來實現(xiàn)。
另外對于 React16 架構(gòu)最大的變動就是 Fiber 了,在 Fiber 架構(gòu)下啟用了啟用 async render 之后,render 之前的生命周期函數(shù)可能會被調(diào)用多次,如果在 componentWillMount 進(jìn)行 AJAX 請求可能會導(dǎo)致無謂地多次調(diào)用AJAX。
其次在 React v16.3 剛發(fā)布這個函數(shù)的時候,getDerivedStateFromProps 這個生命周期函數(shù),我在從它的名字來看的時候,還以為它主要是為了代替 componentWillReceiveProps 的,但進(jìn)過了解后發(fā)現(xiàn),這樣說其實并不準(zhǔn)確。因為 componentWillReceiveProps 只在因為父組件而引發(fā)的Updating過程中才會被調(diào)用。而getDerivedStateFromProps在Updating和Mounting過程中都會被調(diào)用。還需要注意的是,同樣是 Updating 過程,如果是因為自身進(jìn)行的 setState 或者 forceUpdate 所引發(fā)的渲染,getDerivedStateFromProps 也不會被調(diào)用。
那 getDerivedStateProps 究竟是啥東西呢?首先 getDerivedStateProps 生命周期函數(shù)是一個靜態(tài)函數(shù),所以函數(shù)體內(nèi)不能訪問this。
getSnapshotBeforeUpdate 這函數(shù)會在render之后執(zhí)行,而執(zhí)行之時DOM元素還沒有被更新,給了一個機會去獲取DOM信息,計算得到一個snapshot,這個snapshot會作為componentDidUpdate的第三個參數(shù)傳入。
getSnapshotBeforeUpdate(prevProps, pr
在17.0移除了三個生命周期函數(shù)
componentWillMount
componentWillReceiveProps
componentWillUpdate
即render之前的生命周期函數(shù)除了shouldUpdateComponent都被刪除了
display: flex; justify-content: center; /* 水平居中 */ align-items: center; /* 垂直居中 */generator co async
generator
特點
function*
可以使用yield返回多次
co模塊思路
co 模塊的思路就是利用 generator 的這個特性,將異步操作跟在 yield 后面,當(dāng)異步操作完成并返回結(jié)果后,再觸發(fā)下一次 next() 。當(dāng)然,跟在 yield 后面的異步操作需要遵循一定的規(guī)范 thunks 和 promises。
sync優(yōu)點
內(nèi)置執(zhí)行器。 Generator 函數(shù)的執(zhí)行必須靠執(zhí)行器,所以才有了 co 函數(shù)庫,而 async 函數(shù)自帶執(zhí)行器。也就是說,async 函數(shù)的執(zhí)行,與普通函數(shù)一模一樣,只要一行。
更好的語義。 async 和 await,比起星號和 yield,語義更清楚了。async 表示函數(shù)里有異步操作,await 表示緊跟在后面的表達(dá)式需要等待結(jié)果。
更廣的適用性。 co 函數(shù)庫約定,yield 命令后面只能是 Thunk 函數(shù)或 Promise 對象,而 async 函數(shù)的 await 命令后面,可以跟 Promise 對象和原始類型的值(數(shù)值、字符串和布爾值,但這時等同于同步操作)。
LocalStorage/SessionStorage
**(LocalStorage&SessionStorage)&&Cookie: cookie服務(wù)端 webstorage服務(wù)于本地
1都是用來存儲客戶端臨時信息的對象
2均只能存儲字符串類型的對象
3LocalStorage的生命周期為永久,除非在瀏覽器上的UI清楚信息,否則永遠(yuǎn)存在
SessionStorage的生命周期為當(dāng)前窗口/網(wǎng)頁,一旦關(guān)閉該標(biāo)簽、窗口,存儲的數(shù)據(jù)就被清空了
4不同瀏覽器不能共享L或者S的信息。
相同瀏覽器的不同頁面(頂級窗口)可以共享相同的LocalStorage但是不能共享SessionStorage
如果是嵌入式框架(iframe) 則可以共享S信息
localStorage和sessionStorage使用時使用相同的API:
localStorage.setItem("key","value");//以“key”為名稱存儲一個值“value”
localStorage.getItem("key");//獲取名稱為“key”的值
localStorage.removeItem("key");//刪除名稱為“key”的信息。
localStorage.clear();//清空localStorage中所有信息
https://www.jianshu.com/p/2ba...
它實現(xiàn)了瀏覽器和服務(wù)器全雙工通信 建立在傳輸層上
它允許服務(wù)端向客戶端傳遞信息,實現(xiàn)瀏覽器和客戶端雙工通信。
彌補了HTTP不支持長連接的特點
,,只建立一次連接 連接不會斷 服務(wù)端有數(shù)據(jù)就會自動返回數(shù)據(jù)給客戶端
因為是一次長連接 就不用一次次加入cookie
,,服務(wù)器和瀏覽器只需要做一個握手的動作,
然后在瀏覽器和服務(wù)器之間就形成了一條快速通道
兩者之間就可以通過TCP連接直接交換數(shù)據(jù)
獲取web socket連接后可以用過send()方法向服務(wù)器發(fā)送數(shù)據(jù)
通過onmessage接受返回的數(shù)據(jù)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/109915.html
摘要:學(xué)習(xí)完多線程之后可以通過下面這些問題檢測自己是否掌握,下面這些問題的答案以及常見多線程知識點的總結(jié)在這里??蛇x數(shù)據(jù)結(jié)構(gòu)與算法如果你想進(jìn)入大廠的話,我推薦你在學(xué)習(xí)完基礎(chǔ)或者多線程之后,就開始每天抽出一點時間來學(xué)習(xí)算法和數(shù)據(jù)結(jié)構(gòu)。 我自己總結(jié)的Java學(xué)習(xí)的系統(tǒng)知識點以及面試問題,已經(jīng)開源,目前已經(jīng) 35k+ Star。會一直完善下去,歡迎建議和指導(dǎo),同時也歡迎Star: https://...
摘要:字囊括上百個前端面試題的項目開源了這個項目是什么項目內(nèi)容這個項目目前在上剛剛開源主要內(nèi)容如下前端面試題主要整理了高頻且有一定難度的前端面試題對這些面試題進(jìn)行解讀前端原理詳解針對一些有一定難度面試題涉及的知識點進(jìn)行詳解比如涉及的編譯原理響應(yīng)式 20W字囊括上百個前端面試題的項目開源了 這個項目是什么? 項目內(nèi)容 這個項目目前在GitHub上剛剛開源,主要內(nèi)容如下: 前端面試題: 主要整...
摘要:部分公司會存在其他部門領(lǐng)導(dǎo),例如騰訊在較高級別崗位面試時,跨部門的交叉面試,面試內(nèi)容與三面基本相同。如何在面試時穩(wěn)定發(fā)揮一面試考查點是可以在短期內(nèi)突擊的,也是面試前需要重點準(zhǔn)備的內(nèi)容。 showImg(https://segmentfault.com/img/remote/1460000019309535); showImg(https://segmentfault.com/img/r...
閱讀 881·2021-11-15 11:37
閱讀 3619·2021-11-11 16:55
閱讀 3284·2021-11-11 11:01
閱讀 1008·2019-08-30 15:43
閱讀 2755·2019-08-30 14:12
閱讀 695·2019-08-30 12:58
閱讀 3397·2019-08-29 15:19
閱讀 2037·2019-08-29 13:59