Vue中this.$refs的使用及说明
更新时间:2025年08月26日 14:39:59 作者:咸鱼妹妹
Vue中this.$refs用于访问通过ref注册的元素或组件,需在mounted后使用,可在JS操作DOM或调用子组件方法,注意避免模板中直接使用
Vue使用this.$refs
父组件
<template>
<div>
<!--
ref 写在标签上时:this.$refs.名字 获取的是标签对应的dom元素
ref写在组件上时:这时候获取到的是子组件(比如navChild)的引用
-->
<Child ref="navChild"/>
</div>
</template>
<script>
import Child from "@/components/child";
export default {
name: "App",
methods: {
navFn(){
// this.$refs.navChild 或者 this.$refs['navChild']
// 第一种使用情况(父组件调用子组件的方法)
this.$ref.navChild.initData();
// 第二种使用情况(父组件调用子组件的方法,并通过方法传值)
this.$refs.navChild.initData('我是父组件的传值')
// 第四种使用情况(父组件获取子组件的数据)
this.$ref.navChild.status
// 第四种使用情况(父组件获取子组件的数据,并改变数据)
this.$ref.navChild.status = 1;
}
},
};
</script>
子组件
<template>
<div>
<div>{{message}}</div>
</div>
</template>
<script>
export default {
name: "Child",
data() {
return {
message:'这是子组件',
status:0
};
},
components: {},
created() {
console.log(this.$data.status); //1(通过this.$data获取所有变量)
this.status = this.$data.status;
},
methods:{
initData(val){
// 方法二:获取父组件的传值
console.log(val); //我是父组件的传值
this.message = val;
let name = 'Hello World';
}
}
};
</script>
<style scoped>
</style>
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
vue中provide和inject的用法及说明(vue组件爷孙传值)
这篇文章主要介绍了vue中provide和inject的用法及说明(vue组件爷孙传值),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-05-05
关于配置babel-plugin-import报错的坑及解决
这篇文章主要介绍了关于配置babel-plugin-import报错的坑及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-12-12


最新评论