vue中,watch里,this为undefined的两种解决办法

devtools/2025/3/14 22:49:30/

提示: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.ppmy.cn/devtools/167131.html

相关文章

TCP/IP原理详细解析

前言 TCP/IP是一种面向连接&#xff0c;可靠的传输&#xff0c;传输数据大小无限制的。通常情况下&#xff0c;系统与系统之间的http连接需要三次握手和四次挥手&#xff0c;这个执行过程会产生等待时间。这方面在日常开发时需要注意一下。 TCP/IP 是互联网的核心协议族&…

第13章贪心算法

贪心算法 局部最优求得总体最优 适用于桌上有6张纸币&#xff0c;面额为100 100 50 50 50 10&#xff0c;问怎么能拿走3张纸币&#xff0c;总面额最大&#xff1f;—拿单位价值最高的 只关注局部最优----关注拿一张的最大值拆解-----拿三次最大的纸币 不适用于桌面三件物品&am…

RabbitMQ五种消息模型

RabbitMQ 是一款基于 AMQP 协议的高性能消息中间件&#xff0c;广泛应用于分布式系统中&#xff0c;用于实现服务之间的异步通信、解耦和负载均衡。RabbitMQ 提供了五种常见的消息模型&#xff0c;每种模型都有其独特的特点和适用场景。本文将详细介绍这五种消息模型&#xff0…

在 VMware 中安装 Ubuntu 的超详细实战分享

目录 1. 安装准备VMware 软件获取Ubuntu 镜像获取 2. 创建新的虚拟机基础配置自定义硬件设置 3. Ubuntu 系统安装过程启动虚拟机正式安装 Ubuntu安装过程中常见问题 4. 安装后优化安装 VMware Tools系统更新与软件安装分辨率与显示设置 5. 常见故障及解决方案黑屏或安装卡顿网络…

接口测试工具:postman详解

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 Postman 是一款功能强大的 API 开发和测试工具&#xff0c;以下是一些高级用法的详细介绍和操作步骤。 一、环境和全局变量 环境变量允许你设置特定于环境&#…

Gartner发布量子网络安全策略指南:2030年量子计算将能够破坏传统的加密算法

攻击者采用“先收集后解密”策略&#xff0c;为企业带来隐患。加密数据流目前无法读取&#xff0c;但可以保存&#xff0c;直到量子计算能够解密。I&O 领导者可以通过实施后量子密码学策略来降低这种风险。 主要发现 密码相关量子计算机 (CRQC) 将能够在数小时而不是数年内…

Kubernetes(K8s)集群中使用 GPU

在 Kubernetes&#xff08;K8s&#xff09;集群中使用 GPU&#xff0c;需要完成安装驱动、部署插件、配置 containerd、实现 GPU 虚拟化及部分使用等一系列步骤&#xff0c;下面为你详细介绍。 1. 安装 GPU 驱动 以 NVIDIA GPU 为例&#xff0c;因为在深度学习和机器学习场景…

大语言模型-1.3-GPT、DeepSeek模型介绍

简介 本博客内容是《大语言模型》一书的读书笔记&#xff0c;该书是中国人民大学高瓴人工智能学院赵鑫教授团队出品&#xff0c;覆盖大语言模型训练与使用的全流程&#xff0c;从预训练到微调与对齐&#xff0c;从使用技术到评测应用&#xff0c;帮助学员全面掌握大语言模型的…