vue3中使用$refs

Posted 左直拳

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue3中使用$refs相关的知识,希望对你有一定的参考价值。

在vue2中,如果想直接引用页面中的对象,是这样子的:

<template>
<div><input type="text" ref="txt1" value="hello" /></div>
</template>

<script>
	export default 
		methods:
			test()
				console.log(this.$refs.txt1.value);
			,
		
	
</script>

但在vue3中,没有这种歌仔唱了。这破东西,变来变去,极为无聊,徒增学习成本。

在vue3中,没有$refs这个对象。原先的$emit变成了context.emit,但不会有context.refs这种东西。要直接使用页面对象,是这样子的:

<template>
<div><input type="text" ref="txt1" value="hello" /></div>
</template>

<script>
import  defineComponent, ref  from "vue";

export default defineComponent(
  setup() 
  	const txt1 = ref();

	const test = () => 
		console.log(txt1.value.value);
	
	
	return 
		txt1,//一定不要忘记在return中返回给外部
		test
	
  
);
</script>

看看这种代码,我感觉vue3并不比vue2高明,甚至更烂。估计vue4还会来个大改。

以上是关于vue3中使用$refs的主要内容,如果未能解决你的问题,请参考以下文章

vue3中使用$refs

vue3中使用$refs

如何使用 Vue3 和 Typescript 在 Quasar Framework 中定义 ref 方法的类型

使用 ref 的 vue3 性能警告

Vue3 源码解析:ref 与 computed 原理揭秘

Vue3 使用 setup 语法在 v-for 循环中保存 ref 数组