日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

Vue实例里this的使用

發布時間:2025/4/16 vue 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Vue实例里this的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

要理解Vue實例里this的使用,首先要理解this在JavaScript里的用法,可以參考理解JavaScript普通函數以及箭頭函數里使用的this。

這是vue文檔里的原話:

All?lifecycle?hooks?are?called?with?their?'this'?context?pointing?to?the?Vue?instance?invoking?it.

意思是:在Vue所有的生命周期鉤子方法(如created,mounted,?updated以及destroyed)里使用this,this指向調用它的Vue實例。

示例分析

<!DOCTYPE?html> <html> <head><meta?charset="UTF-8"><title></title><script?src="http://libs.baidu.com/jquery/2.0.0/jquery.js"></script><script?src="https://unpkg.com/vue@2.5.9/dist/vue.js"></script> </head> <div?id="app"?style="width:?100%;height:?auto;font-size:20px;"><p?id="id1"></p><p?id="id2"></p> </div> <script?type="text/javascript">var?message?=?"Hello!";var?app?=?new?Vue({el:"#app",data:{message:?"你好!"},created:?function()?{this.showMessage1();????//this?1this.showMessage2();???//this?2},methods:{showMessage1:function(){setTimeout(function()?{document.getElementById("id1").innerText?=?this.message;??//this?3},?10)},showMessage2:function()?{setTimeout(()?=>?{document.getElementById("id2").innerText?=?this.message;??//this?4},?10)}}}); </script> </html>

示例定義了兩個message。一個是全局變量,即window.message,它的值為英文“Hello!”。另外一個是vue實例的數據message,它的值為中文的“你好!”。

運行示例,在瀏覽器得到:

第一個輸出英文"Hello!”,第二個輸出中文“你好!”。這說明了showMessage1()里的this指的是window,而showMessage2()里的this指的是vue實例。

created

created:?function()?{this.showMessage1();????//this?1this.showMessage2();???//this?2 }

created函數為vue實例的鉤子方法,它里面使用的this指的是vue實例。

showMessage1()

showMessage1:function(){setTimeout(function()?{document.getElementById("id1").innerText?=?this.message;??//this?3},?10) }

對于普通函數(包括匿名函數),this指的是直接的調用者,在非嚴格模式下,如果沒有直接調用者,this指的是window。showMessage1()里setTimeout使用了匿名函數,this指向window。

showMessage2()

showMessage2:function()?{setTimeout(()?=>?{document.getElementById("id2").innerText?=?this.message;??//this?4},?10) }

箭頭函數是沒有自己的this,在它內部使用的this是由它定義的宿主對象決定。showMessage2()里定義的箭頭函數宿主對象為vue實例,所以它里面使用的this指向vue實例。

綁定vue實例到this的方法

為了避免this指向出現歧義,有兩種方法綁定this。

使用bind

showMessage1()可以改為:

showMessage1:function(){setTimeout(function()?{document.getElementById("id1").innerText?=?this.message;??//this?3}.bind(this),?10) }

對setTimeout()里的匿名函數使用bind()綁定到vue實例的this。這樣在匿名函數內的this也為vue實例。

把vue實例的this賦值給另一個變量再使用

showMessage1()也可以改為

showMessage1:function(){var?self?=?this;setTimeout(function()?{document.getElementById("id1").innerText?=?self.message;??//改為self}.bind(this),?10) }

這里吧表示vue實例的this賦值給變量self。在使用到this的地方改用self引用。

轉載于:https://my.oschina.net/jack088/blog/2251579

總結

以上是生活随笔為你收集整理的Vue实例里this的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产成人精品视频ⅴa片软件竹菊 | 超碰777| 久久99久久99精品免观看粉嫩 | 国产人人干 | 欧美色图日韩 | 欧美精品色 | 三级视频网站 | 久久人人爽人人爽人人片av高清 | 亚洲顶级毛片 | av尤物在线 | 国产乱码久久久 | 无码精品一区二区三区在线播放 | 欧美人与禽猛交乱配视频 | 免费观看一区二区 | 91成人综合 | 9久久精品 | 国产一区麻豆 | 九月婷婷丁香 | 国产女人18毛片水真多1 | 天天综合网在线观看 | 亚洲成熟少妇视频在线观看 | 337p粉嫩大胆色噜噜噜 | 中国av一区| 农民人伦一区二区三区 | 超碰人人人人 | 国产成人麻豆精品午夜在线 | 国产高清黄色 | 挪威xxxx性hd极品 | 亚洲Av无码成人精品区伊人 | 亚州综合 | 给我看免费高清在线观看 | 雪花飘电影在线观看免费高清 | 国产18在线 | 九九精品免费视频 | 菠萝菠萝蜜网站 | 亚洲不卡中文字幕 | 欧洲成人在线视频 | 亚洲成人精品av | 97视频网站 | 手机看片91| 欧美精品一区二区三区在线 | 青草精品在线 | 日日摸日日碰 | 在线爱情大片免费观看大全 | 91视频免费观看网站 | 开心激情网五月天 | 美女黄页网站 | 成人性生交大片免费看96 | 超碰96在线 | 波多野在线播放 | 国产精品av在线 | 熊猫成人网 | 国产xxxx做受视频 | 韩国三级中文字幕 | 日韩污污 | 成人亚洲玉足脚交系列 | 国产福利在线观看视频 | 成人一区二区三区仙踪林 | 大尺度av在线 | 欧美精品在线免费 | 三级做爰在线观看视频 | 最好看的电影2019中文字幕 | 美女污污网站 | 奇米一区二区 | 夜夜嗨av一区二区三区 | 男女久久久 | 国产在线97 | 国产精品999.| 黑鬼巨鞭白妞冒白浆 | 香蕉久久久| 欧美一卡二卡在线观看 | 中文字幕免费在线看线人动作大片 | 深夜福利91| 久久免费电影 | 日本精品在线一区 | 亚洲美女一区二区三区 | 欧美日韩精品久久久免费观看 | 性色av一区二区三区 | 国产精品无码粉嫩小泬 | 亚洲v日本 | 亚洲色图插插插 | 日本免费高清视频 | 色视频2 | 天天爽天天操 | 亚洲精品九九 | 成人天堂av| 高清无码视频直接看 | 午夜久久剧场 | 国内福利视频 | 成人免费观看视频大全 | 国产在线免费av | 亚洲专区在线 | 激情婷婷小说 | 一区二区免费在线视频 | 久草精品视频 | 在线看的免费网站 | av大片网址 | 1000部国产精品成人观看 | 久久精品视频5 |