vue中關(guān)于computed的this指向問(wèn)題
關(guān)于computed的this指向
在寫(xiě)vue項(xiàng)目時(shí),用到了computed計(jì)算屬性,遇到了使用箭頭函數(shù)出現(xiàn)this指向問(wèn)題,這里記錄下
箭頭函數(shù)中的this
- 箭頭函數(shù)內(nèi)部的this是詞法作用域,由上下文確定
- 函數(shù)體內(nèi)的this對(duì)象,就是定義時(shí)所在的對(duì)象,而不是使用時(shí)所在的對(duì)象
vue中的computed
list: () => {
console.log(this)
}
- 不使用箭頭函數(shù)
allFigure: function() {
console.log(this)
},
- 使用get()
allFigure: {
get() {
console.log(this);
}
}
自己的理解
- 在computed中使用箭頭函數(shù)的話(huà),會(huì)導(dǎo)致this指向的不是整個(gè)的vueComponent
- 此時(shí)使用allFigure: function() {}的形式就可以解決,this指向了vueComponent
- 或者使用對(duì)象的形式,用set()、get()方法也不會(huì)出現(xiàn)問(wèn)題
vue實(shí)例內(nèi)部方法的this指向問(wèn)題
如果是vue實(shí)例本身的屬性和方法,那么this指向就是vue實(shí)例本身,比如methods對(duì)象,computed對(duì)象,watch對(duì)象里的方法,要用方法名(){}寫(xiě),就代表this指向是vue實(shí)例,如果使用()=>{}箭頭函數(shù)的方式定義方法,則this指向window,因?yàn)榧^函數(shù)中的this指向的是外部函數(shù)的this指向,普通函數(shù)的this指向的是它的調(diào)用者,而vue中的methods和computed和watch和各種回調(diào)鉤子,因?yàn)樗麄兪莢ue本身的方法所以只要他們使用普通函數(shù)定義this當(dāng)然指向他們的調(diào)用者即this
除了這些一級(jí)方法,二級(jí)方法啥的最好都用箭頭函數(shù),因?yàn)榧^函數(shù)this指向外部函數(shù)的this,這些二級(jí)函數(shù)外部正好是一級(jí)函數(shù),一級(jí)函數(shù)的this正好的vue,所以正好nice.
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue實(shí)現(xiàn)直播間點(diǎn)贊飄心效果的示例代碼
這篇文章主要介紹了vue實(shí)現(xiàn)直播間點(diǎn)贊飄心效果的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
uniapp開(kāi)發(fā)打包成H5部署到服務(wù)器的詳細(xì)步驟
前端使用uniapp開(kāi)發(fā)項(xiàng)目完成后,需要將頁(yè)面打包,生成H5的靜態(tài)文件,部署在服務(wù)器上這樣通過(guò)服務(wù)器鏈接地址,直接可以在手機(jī)上點(diǎn)開(kāi)來(lái)訪問(wèn),下面小編給大家講解uniapp開(kāi)發(fā)打包成H5部署到服務(wù)器的步驟,感興趣的朋友一起看看吧2022-11-11
antd vue 刷新保留當(dāng)前頁(yè)面路由,保留選中菜單,保留menu選中操作
這篇文章主要介紹了antd vue 刷新保留當(dāng)前頁(yè)面路由,保留選中菜單,保留menu選中操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-08-08
vue項(xiàng)目?jī)煞N方式實(shí)現(xiàn)豎向表格的思路分析
這篇文章主要介紹了vue項(xiàng)目?jī)煞N方式實(shí)現(xiàn)豎向表格的思路分析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
Vue Router4與Router3路由配置與區(qū)別說(shuō)明
這篇文章主要介紹了Vue Router4與Router3路由配置與區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-12-12
vue/cli安裝報(bào)錯(cuò)及解決問(wèn)題的方法圖文詳解
這篇文章主要給大家介紹了關(guān)于vue/cli安裝報(bào)錯(cuò)及解決問(wèn)題的方法,如果在安裝@vue/cli時(shí)遇到錯(cuò)誤,大家可以嘗試以下步驟解決,需要的朋友可以參考下2023-07-07

