如何做視頻網(wǎng)站技術(shù)指標(biāo)網(wǎng)絡(luò)營(yíng)銷策劃的流程
1. beforeCreate
初始化界面前 : 在當(dāng)前階段data、methods、computed以及watch上的數(shù)據(jù)和方法都不能被訪問。
2. created
初始化界面后 : 在實(shí)例創(chuàng)建完成后發(fā)生,當(dāng)前階段已經(jīng)完成了數(shù)據(jù)觀測(cè),也就是可以使用數(shù)據(jù),更改數(shù)據(jù),在這里更改數(shù)據(jù)不會(huì)觸發(fā)updated函數(shù),也就是不會(huì)更新視圖,SSR可以放這里。
3. beforeMount
掛載前 :完成模板編譯,虛擬Dom已經(jīng)創(chuàng)建完成,即將開始渲染。在此時(shí)也可以對(duì)數(shù)據(jù)進(jìn)行更改,不會(huì)觸發(fā)updated。
4. mounted
掛載完成 : 將編譯好的模板掛載到頁面 (虛擬DOM掛載) ,可以在這進(jìn)行異步請(qǐng)求以及DOM節(jié)點(diǎn)的訪問,在vue用$ref操作。
5. beforeUpdate
更新數(shù)據(jù)前 : 組件數(shù)據(jù)更新之前調(diào)用,數(shù)據(jù)都是新的,頁面上數(shù)據(jù)都是舊的 組件即將更新,準(zhǔn)備渲染頁面 , 可以在當(dāng)前階段進(jìn)行更改數(shù)據(jù),不會(huì)造成重渲染。
6. updated
組件更新后 : render重新渲染 , 此時(shí)數(shù)據(jù)和界面都是新的 ,要注意的是避免在此期間更改數(shù)據(jù),因?yàn)檫@可能會(huì)導(dǎo)致無限循環(huán)的更新。
7. beforeDestroy
組件卸載前 : 實(shí)例銷毀之前,在當(dāng)前階段實(shí)例完全可以被使用,我們可以在這時(shí)進(jìn)行善后收尾工作,比如清除計(jì)時(shí)器。
8. destroyed
組件卸載后 : 組件已被拆解,數(shù)據(jù)綁定被卸除,監(jiān)聽被移出,子實(shí)例也統(tǒng)統(tǒng)被銷毀。
基礎(chǔ)用法:
a.toString()
''+1010101
ParseInt()
JSON.stringfy()
JsON.parse()
Arr.reverse()//數(shù)組可以反轉(zhuǎn),字符串不行
str.split()
Arr.join()
Array.from(str)
arr.slice(startIndex,endIndex);,提取的是endTndex之前的元素,長(zhǎng)度超過數(shù)組長(zhǎng)度沒有關(guān)系
arr.splice(index, deletelength,additem1.additem2);//添加是在index處添加,后面的元素整體下標(biāo)加一,而不是在index-1之前加,注意index的變化。
Number.isInteger()//是否是小數(shù);
解決函數(shù)引用傳值:let new arr=JSON.parse(JSON.Stringfy(數(shù)組引用));
Throw后,后面的代碼不會(huì)再執(zhí)行,return 后調(diào)用者中后面的代碼會(huì)再執(zhí)行。throw要通過catch捕獲,只有被catch捕獲后,才不會(huì)影響繼續(xù)往更上一級(jí)傳遞,不然會(huì)阻塞所有上級(jí)的代碼運(yùn)行。
修改變量,應(yīng)該把所有變量涉及到的地方都改了
程序處理細(xì)節(jié)
Js形參可以直接改變值,不是只讀的。
This指向window,this.name就是window里的var name的值,即window.name的值。this指向的當(dāng)前函數(shù)調(diào)用的作用域,函數(shù)里的this.name可以到調(diào)用時(shí)this里去找。但是單獨(dú)一個(gè)name是需要沿著變量作用域一級(jí)一級(jí)往上找的,就是函數(shù)定義時(shí)位置,一級(jí)一級(jí)往上找,同箭頭函數(shù),在這其中,作用域鏈只有函數(shù)作用域和全局作用域兩種類型,對(duì)象沒有作用域的概念。this可以指向?qū)ο?。但是作用域?#xff08;變量及箭頭函數(shù))中對(duì)象不是作用域。
一個(gè)函數(shù)開創(chuàng)的私有作用域里的變量,如果被外界引用了,那么這個(gè)函數(shù)作用域不銷毀。開創(chuàng)的變量即使只是return了,也因?yàn)槭潜贿@個(gè)函數(shù)創(chuàng)建的變量,屬于該函數(shù)私有作用域,而不能馬上銷毀該私有作用域。
New后的對(duì)象,調(diào)用共有方法,誰調(diào)用的只想誰。原型調(diào)用的,this指向原型對(duì)象,如果實(shí)例調(diào)用,this指向?qū)嵗龑?duì)象。
正則匹配:
正則replace:
reg=/([^?&=]+)=([^&?=]+)/g
匹配=左右兩邊的字符串,但是截取的時(shí)候遇到?&=就截?cái)嗟?#xff0c;保留更小的字符串。g表示全局搜索,如果不用g,那么就只會(huì)匹配第一個(gè)。
url.replace(reg,function(){對(duì)每一項(xiàng)匹配reg的數(shù)據(jù)進(jìn)行回調(diào)。})
變量提升,不管條件是否成立,都要先進(jìn)行變量提升,用在if條件中。變量提升,變量聲明才有變量提升。單獨(dú)a=1。不存在變量提升。
在js的非嚴(yán)格模式下,arguments(實(shí)參集合)元素和形參一一映射,一方改變,另一方也會(huì)變化。嚴(yán)格模式下,映射關(guān)系不成立。
函數(shù)形參和私有變量同名,則兩個(gè)同名變量是同一個(gè),原來形參已經(jīng)有了,就不再需要函數(shù)提升再聲明了。
?
邏輯與的優(yōu)先權(quán)高于邏輯或 0||2&&false||3
所有的事件綁定都是異步編程,所以for(var I=0;i<5;i++){οnclick=function(i);//異步編程,i已經(jīng)等于5},使用for(let i=0;i<5;i++){let 形成塊作用域,i每次都是單獨(dú)一個(gè)變量,閉包)