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路由对不同界面进行传参及跳转的总结

    vue路由对不同界面进行传参及跳转的总结

    这篇文章主要介绍了vue路由对不同界面进行传参及跳转的总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • el-table树形表格表单验证(列表生成序号)

    el-table树形表格表单验证(列表生成序号)

    这篇文章主要介绍了el-table树形表格表单验证(列表生成序号),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • 脚手架(vue-cli)创建Vue项目的超详细过程记录

    脚手架(vue-cli)创建Vue项目的超详细过程记录

    用vue-cli脚手架可以快速的构建出一个前端vue框架的项目结构,下面这篇文章主要给大家介绍了关于脚手架(vue-cli)创建Vue项目的超详细过程,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • 浅谈vue单页面中有多个echarts图表时的公用代码写法

    浅谈vue单页面中有多个echarts图表时的公用代码写法

    这篇文章主要介绍了浅谈vue单页面中有多个echarts图表时的公用代码写法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • vue中provide和inject的用法及说明(vue组件爷孙传值)

    vue中provide和inject的用法及说明(vue组件爷孙传值)

    这篇文章主要介绍了vue中provide和inject的用法及说明(vue组件爷孙传值),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • vue中锚点的三种方法

    vue中锚点的三种方法

    本文给大家带来了vue中锚点的三种方法,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2018-07-07
  • VSCode使用之Vue工程配置eslint

    VSCode使用之Vue工程配置eslint

    这篇文章主要介绍了VSCode使用之Vue工程配置eslint,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-04-04
  • 关于配置babel-plugin-import报错的坑及解决

    关于配置babel-plugin-import报错的坑及解决

    这篇文章主要介绍了关于配置babel-plugin-import报错的坑及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • vue中控制mock在开发环境使用,在生产环境禁用方式

    vue中控制mock在开发环境使用,在生产环境禁用方式

    这篇文章主要介绍了vue中控制mock在开发环境使用,在生产环境禁用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • Vue中使用h5 Plus的实现方法

    Vue中使用h5 Plus的实现方法

    这篇文章主要介绍了Vue中使用h5 Plus的实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10

最新评论