vue中,watch里,this為undefined的兩種解決辦法

提示:vue中,watch里,this為undefined的兩種解決辦法

文章目錄

    • @[TOC](文章目錄)
  • 前言
  • 一、問題
  • 二、方法1——使用function函數代替箭頭函數()=>{}
  • 三、方法2——使用that
  • 總結

前言

?????盡量使用方法1——使用function函數代替箭頭函數()=>{}
【使用that方式,父組件中循環生成多個子組件時,有且只有最后一個子組件的watch對象生效問題】

一、問題

打印watch中this是undefined
在這里插入圖片描述
1、selectCom.vue

<template><div class="select_com"><div class="select_com_content" ref="printImgContent"><el-select v-model="model" placeholder="請選擇"><el-option v-for="item in options" :key="item.value" :label="item.name" :value="item.value"></el-option></el-select></div></div></template><script>export default {name: 'preview',props:{type:{type:String,default:'car',}},data () {return {model:'',optionsData:{car:[{name:'豐田',value:'1',},{name:'大眾',value:'2',},{name:'起亞',value:'3',},{name:'別克',value:'4',},],animal:[{name:'貓',value:'1',},{name:'狗',value:'2',},{name:'牛',value:'3',},{name:'羊',value:'4',},],},options:[],}},watch:{type:{handler:()=>{console.log(this,'-------------')},deep:true}},}</script><style scoped></style>

2、home.vue組件

<template><div class="home_box"><el-button @click="changeType('car')">car</el-button><el-button @click="changeType('animal')">animal</el-button><selectCom :type="type"></selectCom></div>
</template><script>import selectCom from './preview/selectCom';export default {name: 'Hmoe',components:{selectCom},data () {return {type:'car',}},methods: {changeType(type){this.type = type;},}}</script><style scoped></style>

二、方法1——使用function函數代替箭頭函數()=>{}

打印watch中that(即this)
在這里插入圖片描述
在這里插入圖片描述
selectCom.vue

<template><div class="select_com"><div class="select_com_content" ref="printImgContent"><el-select v-model="model" placeholder="請選擇"><el-option v-for="item in options" :key="item.value" :label="item.name" :value="item.value"></el-option></el-select></div></div></template><script>export default {name: 'preview',props:{type:{type:String,default:'car',}},data () {return {model:'',optionsData:{car:[{name:'豐田',value:'1',},{name:'大眾',value:'2',},{name:'起亞',value:'3',},{name:'別克',value:'4',},],animal:[{name:'貓',value:'1',},{name:'狗',value:'2',},{name:'牛',value:'3',},{name:'羊',value:'4',},],},options:[],}},watch:{type:{handler:function(){console.log(this,'-------------');},deep:true}},}</script><style scoped></style>

三、方法2——使用that

打印watch中that(即this)
在這里插入圖片描述
在這里插入圖片描述
selectCom.vue

<template><div class="select_com"><div class="select_com_content" ref="printImgContent"><el-select v-model="model" placeholder="請選擇"><el-option v-for="item in options" :key="item.value" :label="item.name" :value="item.value"></el-option></el-select></div></div></template><script>let that;export default {name: 'preview',props:{type:{type:String,default:'car',}},data () {return {model:'',optionsData:{car:[{name:'豐田',value:'1',},{name:'大眾',value:'2',},{name:'起亞',value:'3',},{name:'別克',value:'4',},],animal:[{name:'貓',value:'1',},{name:'狗',value:'2',},{name:'牛',value:'3',},{name:'羊',value:'4',},],},options:[],}},watch:{type:{handler:()=>{console.log(that,'-------------');},deep:true}},created(){that = this;},}</script><style scoped></style>

總結

踩坑路漫漫長@~@

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/897698.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/897698.shtml
英文地址,請注明出處:http://en.pswp.cn/news/897698.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【如何使用云服務器與API搭建專屬聊天系統:寶塔面板 + Openwebui 完整教程】

文章目錄 不挑電腦、不用技術&#xff0c;云服務器 API 輕松搭建專屬聊天系統&#xff0c;對接 200 模型&#xff0c;數據全在自己服務器&#xff0c;安全超高一、前置準備&#xff1a;3 分鐘快速上手指南云服務器準備相關賬號注冊 二、手把手部署教程&#xff08;含代碼塊&a…

使用 PresentMon 獲取屏幕幀率

PresentMon是一個用于捕獲和分析Windows上圖形應用程序高性能特性的工具集,最初由GameTechDev開發,現由英特爾維護和推廣。PresentMon能夠追蹤關鍵性能指標,如CPU、GPU和顯示器的幀持續時間和延遲等,并支持多種圖形API(如DirectX、OpenGL和Vulkan)以及不同的硬件配置和桌…

基金交易系統的流程

1. 賬戶管理 開戶&#xff1a;投資者在基金銷售機構&#xff08;如銀行、券商或第三方平臺&#xff09;開立基金賬戶和資金賬戶。賬戶驗證&#xff1a;驗證投資者身份&#xff0c;綁定銀行卡或其他支付方式。 2. 交易申請 投資者下單&#xff1a;通過交易終端&#xff08;APP…

vue2雙向綁定解析

Vue 2 的雙向綁定原理基于 Object.defineProperty&#xff0c;核心源碼在 src/core/observer 目錄中。 1. 核心模塊&#xff1a;observer observer 模塊負責將普通對象轉換為響應式對象&#xff0c;主要包括以下文件&#xff1a; index.js&#xff1a;定義 Observer 類&#…

中級軟件設計師2004-2024軟考真題合集下載

中級軟件設計師2004-2024軟考真題合集下載 &#x1f31f; 資源亮點&#x1f3af; 適用人群&#x1f4a1; 資源使用指南&#x1f4cc; 資源獲取方式 &#x1f31f; 資源亮點 「中級軟件設計師歷年真題及答案解析&#xff08;2004-2024&#xff09;」 是全網最全、最新的備考資料…

艾爾登復刻Ep1——客戶端制作、場景切換、網絡控制

需要添加的插件內容 Netcode for GameObjects&#xff1a;是一個為 Unity 游戲開發提供高級網絡功能的 SDK。它的主要作用是允許開發者在其 GameObject 和 MonoBehaviour 工作流中集成網絡功能&#xff0c;并且可以與多種底層傳輸層協議兼容。 具體內容請看&#xff1a;https:…

2025探索短劇行業新可能報告40+份匯總解讀|附PDF下載

原文鏈接&#xff1a;https://tecdat.cn/?p41043 近年來&#xff0c;短劇以其緊湊的劇情、碎片化的觀看體驗&#xff0c;迅速吸引了大量用戶。百度作為互聯網巨頭&#xff0c;在短劇領域積極布局。從早期建立行業專屬模型冷啟動&#xff0c;到如今構建完整的商業生態&#xf…

正常的一個編碼器的架構是怎么樣,有哪些模塊構成

正常的一個編碼器架構及其模塊構成 在音視頻編碼器&#xff08;Video Encoder&#xff09;中&#xff0c;通常包括多個核心模塊&#xff0c;整個編碼器架構遵循 輸入 -> 預處理 -> 編碼核心 -> 碼流封裝 的流程。 1. 編碼器的整體架構 編碼器的主要架構如下&#xf…

文件解析漏洞練習

iis6的目錄解析漏洞 (.asp目錄中的所有文件都會被當做asp文件執行) 1.在iis的網站根目錄新建一個名為x.asp的文件 2.在x.asp中新建一個jpg文件。內容為<%now()%> asp代碼。 3.在外部瀏覽器中訪問windows2003的iis網站中的2.jpg 發現asp代碼被執行 iis6的分號截斷解析漏洞…

SQL Server性能優化實戰:從瓶頸定位到高效調優

引言 在數據庫應用中,性能問題直接影響用戶體驗和系統穩定性。本文基于實際案例,分享SQL Server性能優化的關鍵步驟與實用技巧,涵蓋問題定位、索引優化、查詢調優等多個維度。 目錄 引言 一、性能瓶頸定位 1.1 監控工具使用 二、索引優化實戰 2.1 索引碎片整理 2.2 缺…

【DNS系列】使用TCP傳輸

DNS ?默認使用UDP協議?&#xff08;端口53&#xff09;進行通信&#xff0c;但在以下場景中會切換到TCP協議?&#xff08;端口53&#xff09;&#xff1a; ?1. 響應數據過大&#xff08;超過512字節&#xff09;? ?UDP限制&#xff1a;DNS的UDP協議默認限制單個數據包大…

Go Ebiten小游戲開發:俄羅斯方塊

在這篇文章中&#xff0c;我們將一起開發一個簡單的俄羅斯方塊游戲&#xff0c;使用Go語言和Ebiten游戲庫。Ebiten是一個輕量級的游戲庫&#xff0c;適合快速開發2D游戲。我們將逐步構建游戲的基本功能&#xff0c;包括游戲邏輯、圖形繪制和用戶輸入處理。 項目結構 我們的項…

MySQL中IN關鍵字與EXIST關鍵字的比較

文章目錄 **功能等價性分析****執行計劃分析**&#xff1a; **1. EXISTS 的工作原理****步驟拆解**&#xff1a; **2. 為什么需要“利用索引快速定位”&#xff1f;****索引作用示例**&#xff1a; **3. 與 IN 子查詢的對比****IN 的工作方式**&#xff1a;**關鍵差異**&#x…

## DeepSeek寫水果記憶配對手機小游戲

DeepSeek寫水果記憶配對手機小游戲 提問 根據提的要求&#xff0c;讓DeepSeek整理的需求&#xff0c;進行提問&#xff0c;內容如下&#xff1a; 請生成一個包含以下功能的可運行移動端水果記憶配對小游戲H5文件&#xff1a; 要求 可以重新開始游戲 可以暫停游戲 卡片里的水果…

【含文檔+PPT+源碼】基于Django框架的鄉村綠色農產品交易平臺的設計與實現

項目介紹 本課程演示的是一款基于Django框架的鄉村綠色農產品交易平臺的設計與實現&#xff0c;主要針對計算機相關專業的正在做畢設的學生與需要項目實戰練習的 Python學習者。 1.包含&#xff1a;項目源碼、項目文檔、數據庫腳本、軟件工具等所有資料 2.帶你從零開始部署運…

idea超級AI插件,讓 AI 為 Java 工程師

引言? 用戶可在界面中直接通過輸入自然語言的形式描述接口的需求&#xff0c;系統通過輸入的需求自動分析關鍵的功能點有哪些&#xff0c;并對不確定方案的需求提供多種選擇&#xff0c;以及對需求上下文進行補充&#xff0c;用戶修改確定需求后&#xff0c;系統會根據需求設…

@RestControllerAdvice注解

RestControllerAdvice RestControllerAdvice 是 Spring Framework&#xff08;3.2&#xff09;和 Spring Boot 中用于全局處理控制器層異常和統一響應格式的注解。它結合了 ControllerAdvice 和 ResponseBody 的功能&#xff0c;能夠攔截控制器方法拋出的異常&#xff0c;并以 …

ActiveMQ監聽器在MQ重啟后不再監聽問題

應用的監聽器注解 JmsListener(destination "TopicName",containerFactory "FactoryName")工廠代碼 BeanJmsListenerContainerFactory<?> FactoryName(ConnectionFactory connectionFactory){SimpleJmsListenerContainerFactory factory new S…

大白話 Vue 中的keep - alive組件,它的作用是什么?在什么場景下使用?

大白話 Vue 中的keep - alive組件&#xff0c;它的作用是什么&#xff1f;在什么場景下使用&#xff1f; 什么是 keep-alive 組件 在 Vue 里&#xff0c;keep-alive 是一個內置組件&#xff0c;它就像是一個“保存盒”&#xff0c;能把組件實例保存起來&#xff0c;而不是每次…

考研復試c語言常見問答題匯總2

11. 關鍵字和一般標識符有什么不同&#xff1f; C語言中關鍵字與一般標識符區別&#xff1a; 定義&#xff1a;關鍵字是C語言預定義的特殊單詞&#xff08;如int、for&#xff09;&#xff0c;有固定含義&#xff1b;標識符是自定義的名稱&#xff08;如變量名、函數名&#xf…