说明:vm.$refs 一个对象,持有已注册过 ref 的所有子组件(或HTML元素)
使用:在 HTML元素 中,添加ref属性,然后在JS中通过vm.$refs.属性来获取
注意:如果获取的是一个子组件,那么通过ref就能获取到子组件中的data和methods
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<!-- <script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script> -->
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
<style>
</style>
</head>
<body>
<div id="vue_app">
<qinwm ref="vue_qinwm"></qinwm>
<p ref="vue_p">Hello, world!</p>
<button @click="getRef">getRef</button>
</div>
</body>
</html>
<script>
Vue.component("qinwm", {
template: `<h1>{{msg}}</h1>`,
data(){
return {
msg: "Hello, world!"
};
},
methods:{
func:function (){
console.log("Func!");
}
}
});
new Vue({
el: "#vue_app",
data(){
return {};
},
methods: {
getRef () {
console.log(this.$refs);
console.log(this.$refs.vue_p); // <p>Hello, world!</p>
console.log(this.$refs.vue_qinwm.msg); // Hello, world!
console.log(this.$refs.vue_qinwm.func); // func:function (){ console.log("Func!"); }
this.$refs.vue_qinwm.func(); // Func!
}
}
});
</script>