vue中computed下使用箭頭函數(shù)會(huì)報(bào)錯(cuò)問題及解決
vue中computed下使用箭頭函數(shù)會(huì)報(bào)錯(cuò)
computed: { myPhone: () => { let num3 = this.mobile.slice(-4); let num1 = this.mobile.slice(0,-8); let str = `${num1}****${num3}`; return str; } }
這種情況下會(huì)報(bào)一個(gè)這樣的錯(cuò),其實(shí)并不是slice方法的原因,而是我們?cè)赾omputed中使用了箭頭函數(shù)
我們把箭頭函數(shù)換掉,就不會(huì)再報(bào)錯(cuò)了。
首先我們來說一下computed的作用
- 和普通屬性一樣是在模板中綁定計(jì)算屬性,當(dāng)data中對(duì)應(yīng)數(shù)據(jù)發(fā)生改變時(shí),計(jì)算屬性值會(huì)隨之改變。
- 計(jì)算屬性compute是基于他們的依賴(如果是實(shí)例范疇之外的依賴,比如非響應(yīng)式的notreactive是不會(huì)觸發(fā)屬性更新的)進(jìn)行緩存(計(jì)算屬性的結(jié)果會(huì)被緩存),只有相關(guān)依賴會(huì)發(fā)生改變時(shí)才會(huì)重新求值,未改變只會(huì)返回只之前的結(jié)果,不在執(zhí)行函數(shù)
所以
計(jì)算屬性computed不應(yīng)該使用箭頭函數(shù)來定義計(jì)算屬性 因?yàn)榧^函數(shù)綁定了父級(jí)作用域的上下文,所以 this 將不會(huì)按照期望指向Vue
vue中computed使用es6中箭頭函數(shù),找不到定義的變量問題
本人不建議在computed中使用es6箭頭函數(shù)
建議直接改為es5匿名函數(shù)寫法
原因
箭頭函數(shù)的this 指向箭頭函數(shù)定義時(shí)所處的對(duì)象,而不是箭頭函數(shù)使用時(shí)所在的對(duì)象,默認(rèn)使用父級(jí)的this。
首先從它的父級(jí)作用域中找,如果父級(jí)作用域還是箭頭函數(shù),再往上層找,如此直至找到this的指向在computed中使用this,由于箭頭函數(shù)綁定了父級(jí)作用域的上下文,所以 this 將不會(huì)按照期望指向Vue
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
element-plus日歷(Calendar)動(dòng)態(tài)渲染以及避坑指南
這篇文章主要給大家介紹了關(guān)于element-plus日歷(Calendar)動(dòng)態(tài)渲染以及避坑指南的相關(guān)資料,這是最近幫一個(gè)后端朋友處理一個(gè)前端問題,elementUI中calendar日歷組件內(nèi)容進(jìn)行自定義顯示,實(shí)現(xiàn)類似通知事項(xiàng)的日歷效果,需要的朋友可以參考下2023-08-08VUE + UEditor 單圖片跨域上傳功能的實(shí)現(xiàn)方法
這篇文章主要介紹了VUE + UEditor 單圖片跨域上傳功能的實(shí)現(xiàn)方法,需要的朋友參考下2018-02-02關(guān)于vue設(shè)置環(huán)境變量全流程
這篇文章主要介紹了關(guān)于vue設(shè)置環(huán)境變量全流程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03Vue.js實(shí)現(xiàn)大屏數(shù)字滾動(dòng)翻轉(zhuǎn)效果
大屏數(shù)字滾動(dòng)翻轉(zhuǎn)效果來源于最近工作中element后臺(tái)管理頁面一張大屏的UI圖,該UI圖上有一個(gè)模塊需要有數(shù)字往上翻動(dòng)的效果。本文通過截圖代碼的形式給大家介紹Vue.js實(shí)現(xiàn)大屏數(shù)字滾動(dòng)翻轉(zhuǎn)效果,感興趣的朋友一起看看吧2019-11-11vue.js2.0 實(shí)現(xiàn)better-scroll的滾動(dòng)效果實(shí)例詳解
better-scroll 是一個(gè)移動(dòng)端滾動(dòng)的解決方案,它是基于 iscroll 的重寫。better-scroll 也很強(qiáng)大,不僅可以做普通的滾動(dòng)列表,還可以做輪播圖、picker 等等,下面通過本文給大家介紹vue.js2.0 實(shí)現(xiàn)better-scroll的滾動(dòng)效果,感興趣的朋友一起看看吧2018-08-08Vue項(xiàng)目中vue.config.js常用配置項(xiàng)詳解
在 Vue CLI 創(chuàng)建的項(xiàng)目中,vue.config.js 是核心配置文件,用于定制化構(gòu)建、開發(fā)和部署流程,本文詳細(xì)解析了該文件的常用配置項(xiàng),并結(jié)合代碼示例和表格說明,幫助開發(fā)者高效管理項(xiàng)目配置,提升開發(fā)體驗(yàn),需要的朋友可以參考下2025-04-04