最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue watch內(nèi)部調(diào)用methods方法報(bào)錯(cuò)的解決方案

 更新時(shí)間:2022年04月11日 15:26:24   作者:一名假人  
這篇文章主要介紹了vue watch內(nèi)部調(diào)用methods方法報(bào)錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

watch內(nèi)部調(diào)用methods方法報(bào)錯(cuò)

錯(cuò)誤例子還原

例子

<script>
	export default{
		data(){
			return {
				data: 1,
			}
		},
		watch: {
			data: (newV, oldV) => {
				this.printf() // 此處調(diào)用會(huì)出現(xiàn) undefined
			}
		},
		methods: {
			printf(){
				console.log("111111")
			}
		}		
	}
</script>

錯(cuò)誤原因

在vue的Watch監(jiān)聽(tīng)器要注意一點(diǎn),那就是watch的內(nèi)部的監(jiān)聽(tīng)方法,一定一定不要使用箭頭表達(dá)式,正確的寫(xiě)法應(yīng)該是

watch: {
?? ?data: function(newV, oldV){
?? ??? ?this.printf
?? ?}
}

關(guān)于watch使用方式的vue官方鏈接

理解methods,computed,watch的調(diào)用時(shí)機(jī)

最近在學(xué)Vue框架的 時(shí)候?qū)ethods,computed不甚理解,看了幾篇?jiǎng)e人寫(xiě)的博客感覺(jué)描述的也很模糊,故而在稍微明白他們之間主要差異的時(shí)候,寫(xiě)文章記錄下。

1.methods中定義的函數(shù)

其調(diào)用時(shí)機(jī)是:當(dāng)頁(yè)面引用了vue data關(guān)鍵字的屬性,并且這些屬性發(fā)生改變的時(shí)候,就會(huì)執(zhí)行methods中定義的函數(shù),并且不管methods中定義的函數(shù)是否依賴了data關(guān)鍵字中的屬性,methods中定義的函數(shù)都會(huì)被執(zhí)行。methods中定義的函數(shù)能像普通函數(shù)那樣,當(dāng)主動(dòng)調(diào)用methods中定義的函數(shù)的時(shí)候,這些函數(shù)每次調(diào)用都會(huì)執(zhí)行。

 2.computed中定義的函數(shù)

在computed中定義的函數(shù)的調(diào)用時(shí)機(jī)是:當(dāng)頁(yè)面引用了vue data關(guān)鍵字的屬性,并且這些屬性發(fā)生改變的時(shí)候,如果computed中定義的函數(shù)也依賴了這些改變的屬性,那么computed中定義的函數(shù)才會(huì)被執(zhí)行。

也就是computed中定義的函數(shù)被Vue框架回調(diào)的條件是

  • 1.函數(shù)內(nèi)依賴了vue的屬性
  • 2.這些屬性發(fā)生了改變
  • 3.這些屬性被頁(yè)面引用

這三個(gè)條件同時(shí)滿足,才會(huì)觸發(fā)computed中定義的某個(gè)函數(shù)的回調(diào)。而且和methods定義的函數(shù),其調(diào)用語(yǔ)法也是不一樣的,computed中定義的函數(shù),調(diào)用的時(shí)候后面不能有小括號(hào),類似屬性的調(diào)用。

并不是每次主動(dòng)調(diào)用computed中定義的函數(shù)都會(huì)執(zhí)行,computed中定義的函數(shù)即使是主動(dòng)調(diào)用,其是否會(huì)執(zhí)行也和內(nèi)部的依賴屬性是否發(fā)生改變有關(guān)。

3.watch中定義的方法

是用來(lái)監(jiān)聽(tīng)某個(gè)屬性發(fā)生變化的時(shí)候,觸發(fā)回調(diào)。在watch中定義方法的時(shí)候,方法的鍵必須是vue中已經(jīng)定義的屬性。

new Vue({
? el: "#app",
? data: {
? ?num: 1,
? ?num2: 2,
? ?value3: 88
? ?
? },
? methods: {
? ? ?getNum:function(){ //每次更新頁(yè)面的時(shí)候就會(huì)執(zhí)行
? ? ? ? ? ?alert("methods");
? ? ? ? ? ?return "現(xiàn)在的num:";
? ? ?}
? },
? ?computed: {
? ? ? getNum2:function(){ //第一次執(zhí)行,后面當(dāng)依賴的屬性發(fā)生改變的時(shí)候執(zhí)行
? ? ? alert("computed");
? ? ? ? return "num2:"+ this.num2;
? ? ?}
? },
? watch: {
? ?value3: function(value){ ?//value3是已經(jīng)在data中定義的屬性,value是該屬性發(fā)生改變的時(shí)候的值
? ? alert(" 現(xiàn)在的value:"+ value);
? ?}
? }
})
<div id="app">
<p>{{num}}</p>
<p>{{getNum()}}</p>
<button v-on:click="num++">Num++</button>
<button v-on:click="num--">Num--</button>
<button v-on:click="num2++">Num2++</button>
<button v-on:click="value3++">value3++</button>
</div>

上面的理解,來(lái)源于代碼運(yùn)行情況的測(cè)試和總結(jié),或有不周到之處,還望讀者見(jiàn)諒。 

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。 

相關(guān)文章

  • Vue CLI3基礎(chǔ)學(xué)習(xí)之pages構(gòu)建多頁(yè)應(yīng)用

    Vue CLI3基礎(chǔ)學(xué)習(xí)之pages構(gòu)建多頁(yè)應(yīng)用

    這篇文章主要給大家介紹了關(guān)于Vue CLI3基礎(chǔ)學(xué)習(xí)之pages構(gòu)建多頁(yè)應(yīng)用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Vue CLI3具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Vue3如何利用xlsx、xlsx-js-style導(dǎo)出Excel表格使用(適合新手)

    Vue3如何利用xlsx、xlsx-js-style導(dǎo)出Excel表格使用(適合新手)

    在Vue項(xiàng)目中導(dǎo)出Excel表格是常見(jiàn)的功能,特別是在后臺(tái)管理系統(tǒng)中,為了方便用戶將大量數(shù)據(jù)保存為本地文件,這篇文章主要給大家介紹了關(guān)于Vue3如何利用xlsx、xlsx-js-style導(dǎo)出Excel表格使用的相關(guān)資料,需要的朋友可以參考下
    2024-06-06
  • vue中echarts關(guān)系圖動(dòng)態(tài)增刪節(jié)點(diǎn)以及連線方式

    vue中echarts關(guān)系圖動(dòng)態(tài)增刪節(jié)點(diǎn)以及連線方式

    這篇文章主要介紹了vue中echarts關(guān)系圖動(dòng)態(tài)增刪節(jié)點(diǎn)以及連線方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 使用vue實(shí)現(xiàn)簡(jiǎn)單鍵盤(pán)的示例(支持移動(dòng)端和pc端)

    使用vue實(shí)現(xiàn)簡(jiǎn)單鍵盤(pán)的示例(支持移動(dòng)端和pc端)

    這篇文章主要介紹了使用vue實(shí)現(xiàn)簡(jiǎn)單鍵盤(pán)的示例(支持移動(dòng)端和pc端),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • 簡(jiǎn)單談?wù)剉ue的過(guò)渡動(dòng)畫(huà)(推薦)

    簡(jiǎn)單談?wù)剉ue的過(guò)渡動(dòng)畫(huà)(推薦)

    下面小編就為大家?guī)?lái)一篇簡(jiǎn)單談?wù)剉ue的過(guò)渡動(dòng)畫(huà)(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-10-10
  • vue中provide、inject的使用方法案例詳解

    vue中provide、inject的使用方法案例詳解

    本教程是介紹如何在vue中使用provide和inject,在 Vue 中,provide 和 inject 是用于實(shí)現(xiàn)祖先組件向后代組件傳遞數(shù)據(jù)的一種方式,對(duì)vue中provide、inject的使用方法感興趣的朋友一起看看吧
    2024-02-02
  • vue實(shí)現(xiàn)計(jì)算器封裝

    vue實(shí)現(xiàn)計(jì)算器封裝

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)計(jì)算器的封裝,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 安裝nvm?node版本管理器的操作方法(vue2.x遷移vue3.x)

    安裝nvm?node版本管理器的操作方法(vue2.x遷移vue3.x)

    這篇文章主要介紹了安裝nvm?node版本管理器(vue2.x遷移vue3.x)的操作方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-01-01
  • Vue3中Hooks函數(shù)的使用及封裝思想詳解

    Vue3中Hooks函數(shù)的使用及封裝思想詳解

    Vue?3中的Hooks函數(shù)是一種用于在組件中共享可復(fù)用邏輯的方式,簡(jiǎn)單來(lái)說(shuō),就是將單獨(dú)功能的js代碼抽離出來(lái),?加工成公共函數(shù),從而達(dá)到邏輯復(fù)用,下面小編就來(lái)和大家聊聊Hooks函數(shù)的使用及封裝思想吧
    2023-06-06
  • 詳解關(guān)于vue2.0工程發(fā)布上線操作步驟

    詳解關(guān)于vue2.0工程發(fā)布上線操作步驟

    這篇文章主要介紹了詳解關(guān)于vue2.0工程發(fā)布上線操作步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09

最新評(píng)論

册亨县| 嵊州市| 合水县| 尚志市| 阿拉善盟| 岳普湖县| 英吉沙县| 五常市| 华坪县| 阳曲县| 永修县| 闻喜县| 泗阳县| 靖边县| 萍乡市| 安顺市| 台江县| 灵川县| 凤庆县| 易门县| 富源县| 类乌齐县| 兴义市| 获嘉县| 龙游县| 桐庐县| 阿坝| 榕江县| 德安县| 五家渠市| 琼海市| 宁明县| 永春县| 新晃| 徐水县| 新竹县| 伊宁县| 长顺县| 枣阳市| 呼图壁县| 百色市|