10. ref与refs

2022-10-12 15:42:23发布
39

ref绑定在dom元素或者组件上,则可以操作其属性与方法。


例子 (绑定在dom元素。功能 :从系统选中一张图片,并且展示在浏览器上)

<template>
  <div>
      <input type="file" ref="input" @change="addImage">
      <ul>
        <li v-for="(item,key) in imageList" :key="key"><img :src="item" alt=""></li>
      </ul>
  </div>
</template>
<script>
export default {
  data() {
    return {
      imageList:[]
    }
  },
  methods:{
    addImage (){
      let self = this;
      let file = this.$refs.input.files[0]; // 操作dom原生属性
      let reader = new FileReader();
      reader.readAsDataURL(file);
      reader.onload = function () {
        self.imageList.push(this.result);
        self.$refs.input.value = ''; // 操作dom原生属性
      }
    }
  }
}
</script>
 
 


例子 (绑定在组件上。功能:在父组件调用子组件的方法)

子组件

<template>
  <div>B</div>
</template>
<script>
export default {
  methods:{
    tba(){
      alert('B');
    }
  }
}
</script>

父组件

<template>
  <div>
    <B ref="B"></B>
  </div>
</template>
<script>
import B from "@/template/b";
export default {
  components:{
    B
  },
  mounted(){
    this.$refs.B.tba(); // 调用子组件的方法
  }
}
</script>