vue ref 使用教程

编程教程 > WEB > Vue.js (8036) 2024-11-26 14:39:04

一.vue ref基本用法:本页面获取dom元素

$title(t1.vue)
<template>
  <div id="app">
    <div ref="testDom">11111</div>
    <button @click="getTest">获取test节点</button>
  </div>
</template>

<script>
export default {
  methods: {
    getTest() {
      console.log(this.$refs.testDom)
    }
  }
};
</script>

调试上面的代码:

vuejs ref获取本页面元素调试
vuejs ref获取本页面元素调试

提示:ref除了可以获取本页面的dom元素,还可以拿到子组件中的data和去调用子组件中的方法

二.vue ref获取子组件中的data

$title(子组件)
<template>
  <div>
      {{ msg }}
  </div>
</template>

<script>
export default {
  data() {
    return {
      msg: "hello world"
    }
  }
}
</script>

 

$title(父组件)
<template>
  <div id="app">
    <HelloWorld ref="hello"/>
    <button @click="getHello">获取helloworld组件中的值</button>
  </div>
</template>

<script>
import HelloWorld from "./components/HelloWorld.vue";

export default {
  components: {
    HelloWorld
  },
  data() {
    return {}
  },
  methods: {
    getHello() {
      console.log(this.$refs.hello.msg)
    }
  }
};
</script>

调试:
父子组件调试

 

三.vue ref调用子组件中的方法

$title(子组件)
<template>
  <div>
  </div>
</template>

<script>
export default {
  methods: {
    open() {
      console.log("调用到了")
    }
  }
}
</script>

 

<template>
  <div id="app">
    <HelloWorld ref="hello"/>
    <button @click="getHello">获取helloworld组件中的值</button>
  </div>
</template>

$title(父组件)
<script>
import HelloWorld from "./components/HelloWorld.vue";

export default {
  components: {
    HelloWorld
  },
  data() {
    return {}
  },
  methods: {
    getHello() {
      this.$refs.hello.open();
    }
  }
};
</script>

调试:
调用子组件
 

四.vue ref子组件调用父组件方法

$title(子组件)
<template>
  <div>
</div>
</template>

<script>
export default {
  methods: {
    open() {
      console.log("调用了");
      //  调用父组件方法
      this.$emit("refreshData");
    }
  }
}
</script>

 

$title(父组件)
<template>
  <div id="app">
    <HelloWorld ref="hello" @refreshData="getData"/>
    <button @click="getHello">获取helloworld组件中的值</button>
  </div>
</template>

<script>
import HelloWorld from "./components/HelloWorld.vue";

export default {
  components: {
    HelloWorld
  },
  data() {
    return {}
  },
  methods: {
    getHello() {
      this.$refs.hello.open()
    },
    getData() {
      console.log('111111')
    }
  }
};
</script>

调试:
调试


评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
一.vue ref基本用法:本页面获取dom元素$title(t1.vue) &lt;template&gtl; &lt;div id="app"&gtl; &lt;div r...
最终效果图  实现逻辑和代码 html代码   &lt;el-table       :data="renderDynamic"       ref="produc...
前言Vue3 + Vite 打包静态资源使用相对路径 默认配置打包后文件预览相对路径绝对路径 Vue3 静态资源相对路径打包配置方法: 在defineConfi
一、函数式写法在vue2中,computed 写法:computed:{ sum(){ return this.num1+ this.num2 }} vue 3
在初始化完一个vue项目(基于vue-cli 和webpack)之后,我们可以通过 npm run dev来让这个项目跑起来
Vue v-if判断数组长度 searchResultDataList为vue定义的data里面的变量&lt;li  v-if="Object.keys(searchResultDataLis...
1.vue项目中创建global.js创建global.js放于main.js同级目录(可自己随意放)export default {   getToken()   {     retur...
一、前言Vue 2.x 使用期间,我们会创建众多组件,这里我们将讨论一下各个组件直接的相互通讯问题如何解决
一、如何在vue中使用route跳转页面并传递参数this.$router.push({ path: '/path/to/your',query:{param1:value1,param2:va...
vue watch监控对象属性变化watch:{ 'object.attr':function attr(value){ //处理操作 } ...
vue打包会把vue相关的组件打包到一个文件vendor.*.js(*是个随机数)步骤一 资源引入vue最外层index.html文件引入资源文&lt;body&gtl;     &lt;di...
Vue 如何返回上一页(上一个锚点)//...省略 methods:{ goback:function(){ this.$router.go(-1);//...
vue
先安装nodejs然后全局安装pnpm工具npm install -g pnpm
一、vue-router路由跳转分为两大类编程式的跳转:router.push声明式的跳转:&lt;router-link&gtl;二、编程式的跳转分为三种1、this.$router.push...
meta字段(元数据)直接在路由配置的时候,给每个路由添加一个自定义的meta对象,在meta对象中可以设置一些状态,来进行一些操作