vue2+elementUI 中监听对象属性值变化

注意监听数组的变更不需要这么做。

想在双向绑定的对象的属性变化后,根据这个值做判断,但是直接使用是不行的,所以需要监听对象的属性值变化

在这里插入图片描述

三种方式:
  1. watch 对象,加deep:true,深度监听
	watch:{
	info:{注意监听数组的变更不需要这么做。
		handler(newVal){
			console.log(newVal);
		},
		deep: true
	}
}
  1. 直接watch对象的属性
watch:{
	'info.a'(newVal, oldVal){
		if(newVal != oldVal && newVal != ""){
			this.vDisable = false;
         	var appName = newVal.split("-")[0]
         	this.getVersionData(appName)
		}
	}
}

  1. computed计算对象的属性值,watch这个computed值
computed:{
	//该计算属性返回要监视的对象属性值
	infoa(){
		return this.info.a;
	}
},
watch:{
	//开始监听返回该对象属性值计算属性
	infoa: function(newVal, oldVal){
		console.log(newVal, oldVal);
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你在Vue3和ElementUI使用el-select组件的multiple属性进行单选或多选,并且想要在点击编辑按钮后,弹出一个弹框来显示选择的结果,可以使用ElementUI的Dialog组件来实现。具体步骤如下: 1. 在父组件,给el-select绑定一个v-model,用来存储选择的,并在点击编辑按钮时,打开一个Dialog弹框,用来显示选择结果。 2. 将选择结果传递给Dialog弹框,在弹框显示选择结果。 下面是一个简单的示例代码: 父组件: ```html <template> <div> <el-select v-model="selected" multiple> <el-option label="Option 1" value="1"></el-option> <el-option label="Option 2" value="2"></el-option> <el-option label="Option 3" value="3"></el-option> </el-select> <el-button @click="edit">编辑</el-button> <el-dialog :visible.sync="dialogVisible" title="选择结果"> <div v-for="item in selected" :key="item">{{ item }}</div> </el-dialog> </div> </template> <script> import { ref } from 'vue' export default { setup() { const selected = ref([]) // 存储选择结果的数组 const dialogVisible = ref(false) // 控制Dialog弹框显示的变量 const edit = () => { // 打开Dialog弹框 dialogVisible.value = true } return { selected, dialogVisible, edit } } } </script> ``` 在父组件,我们使用了Vue3的Composition API来定义了存储选择结果的数组和控制Dialog弹框显示的变量,并在edit方法,打开了Dialog弹框。 在Dialog弹框,我们使用了v-for来遍历选择结果数组,将每个选择结果显示在弹框。 注意,我们使用了v-bind.sync来将dialogVisible属性和Dialog组件的visible属性进行了双向绑定,这样就可以在父组件控制Dialog弹框的显示和隐藏。 子组件: ```html <template> <div> <el-select v-model="selected" :multiple="true"> <el-option label="Option 1" value="1"></el-option> <el-option label="Option 2" value="2"></el-option> <el-option label="Option 3" value="3"></el-option> </el-select> </div> </template> <script> import { defineProps, ref, watch } from 'vue' export default { props: { selected: { type: Array, default: () => [] } }, setup(props) { const selected = ref(props.selected) // 存储选择结果的数组 // 监听父组件传递的选择结果,更新子组件的选择结果 watch(() => props.selected, (newValue) => { selected.value = newValue }) return { selected } } } </script> ``` 在子组件,我们使用了props来接收父组件传递的v-model的,并在el-select绑定这个,用来实现选择功能。 在父组件,我们使用v-bind.sync来将父组件的selected属性和子组件的selected属性进行了双向绑定,这样就可以实现在父组件点击编辑后,Dialog弹框内部的回显数据

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值