Vue中当点击按钮与需要获取的内容为兄弟层级时如何获取

类似于这样的情况,以一段代码作为示例

<div class="hello">
	<div class="one">ABCD</div>
	<div class="two">
		<button @click="clickMe>点击按钮</button>
	</div>
</div>

此时为一个大盒子包裹下的两个小盒子(承载内容)
当点击第二个盒子中的button按钮时要获取到第一个盒子中的内容
vue提供了$ref方法 用法如下

<div class="hello" ref="getMsg">
	<div class="one">ABCD</div>
	<div class="two">
		<button @click="clickMe>点击按钮</button>
	</div>
</div>

export default {
	data () {
		return {
		}
	},
	methods: {
		getMsg () {
			console.log (this.$refs.getMsg.firstChild.innerHTML)
		}
	}
}


如此便可以获取到内容了
这种方法为vue提供的样板用法
原生js中的方法要更为直观和简单 个人在项目中曾经将盒子层级嵌套之后点击无法直接获取ID 便想到使用$ref方法
ref的引用是相当于一个DOM节点,而且是一个string类型的值。

个人理解为创建虚拟DOM节点并进行操作,此DOM节点在Vue实例没有渲染完成前时不存在的,即是不可操作的,当Vue实例渲染结束时可以通过this.$ref对其下属的节点进行操作 修改样式或其他操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值