美文网首页
# Vue与ref属性与refs

# Vue与ref属性与refs

作者: 前端陈陈陈 | 来源:发表于2020-08-28 09:13 被阅读0次
ref 被用来给DOM元素或子组件注册引用信息。引用信息会根据父组件的 $refs 对象进行注册。如果在普通的DOM元素上使用,引用信息就是元素; 如果用在子组件上,引用信息就是组件实例
注意:只要想要在Vue中直接操作DOM元素,就必须用ref属性进行注册
// 用法一、本页面获取dom元素
<template>
  <div>
    <div id="app">
      <div ref="Dom">666</div>
      <button @click="getTest">获取test节点</button>
    </div>
  </div>
</template>
<script>
export default {
  data() {
    return {};
  },
  methods: {
    getTest() {
      console.log(this.$refs.Dom);
    }
  }
};
</script>
//用法二、获取子组件中的data和去调用子组件中的方法 :获取子组件中的data

//子组件
<template>
  <div>  {{ Message}}</div>
</template>
<script>
export default {
  data() {
    return {
        Message:"你好"
    };
  }
};
</script>


// 父组件

<template>
  <div>
    <div id="app">
     <index ref="hello"></index>
      <button @click="getTest">获取子组件节点</button>
    </div>
  </div>
</template>
<script>
import index from "./chilan/index"
export default {
  components:{
    index
  },
  data() {
    return {};
  },
  methods: {
    getTest() {
      console.log(this.$refs.hello.Message);
    }
  }
};
</script>

效果图:


image.png
//用法三、 父组件调用子组件中的方法

//子组件
<template>
  <div>  {{ Message}}</div>
</template>
<script>
export default {
  data() {
    return {
        Message:"你好"
    };
  },
  methods:{
      getlist(){
          console.log("你好呀!")
      }
  }
};
</script>

//父组件
<template>
  <div>
    <div id="app">
     <index ref="hello"></index>
      <button @click="getTest">调用子组件事件</button>
    </div>
  </div>
</template>
<script>
import index from "./chilan/index"
export default {
  components:{
    index
  },
  data() {
    return {};
  },
  methods: {
    getTest() {
      this.$refs.hello.getlist();
    }
  }
};
</script>

效果:


image.png
//方法四
//子组件调用父组件方法

//子组件
<template>
  <div>  {{ Message}}</div>
</template>
<script>
export default {
  data() {
    return {
        Message:"你好"
    };
  },
  methods:{
      getlist(){
         this.$emit("refreshData");
      }
  }
};
</script>

//父组件
<template>
  <div>
    <div id="app">
     <index ref="hello"  @refreshData="getData"></index>
      <button @click="getTest">获取hello</button>
    </div>
  </div>
</template>
<script>
import index from "./chilan/index"
export default {
  components:{
    index
  },
  data() {
    return {};
  },
  methods: {
    getTest() {
      this.$refs.hello.getlist();
    },
     getData() {
      console.log('父组件')
    }
  }
};
</script>

效果:


image.png

相关文章

网友评论

      本文标题:# Vue与ref属性与refs

      本文链接:https://www.haomeiwen.com/subject/rtvcsktx.html