美文网首页
vue3中ref的使用场景

vue3中ref的使用场景

作者: 焚心123 | 来源:发表于2022-10-24 09:58 被阅读0次
ref的使用及使用场景
  • 在setup中进行声明响应式的变量,一般声明基本数据类型使用,获取或者赋值的时候使用.value进行获取
 let a = ref(0)
 a.value ++
  • 使用ref获取当前元素的dom
 <p ref='p'>111</p>

let p = ref(null)
onMounted(()=>{
  console.log(p.value)//此时就是当前的dom元素了
})
  • 在v-for中使用,会是一个数组
<script setup>
import { ref, onMounted } from 'vue'
const itemRefs = ref([])

onMounted(() => console.log(itemRefs.value))
</script>

<template>
  <ul>
    <li v-for="item in 10" ref="itemRefs">
      {{ item }}
    </li>
  </ul>
</template>
  • ref也可以在标签上写成函数使用
<input :ref="(el) => { /* 将 el 赋值给一个数据属性或 ref 变量 */ }">
  • 组件上的ref
    • 注意:如果子组件中使用<script setup>这种方式,那么父组件获取不到子组件中的方法,要使用defineExpose在子组件中将当前的方法进行暴露出来,父组件才可以进行使用
  • 父组件
<script setup>
import { ref, onMounted } from 'vue'
import Child from './Child.vue'

const child = ref(null)

onMounted(() => {
  // child.value 是 <Child /> 组件的实例
})
</script>

<template>
  <Child ref="child" />
</template>
  • 子组件使用defineExpose暴露方法
<script setup>
import { ref } from 'vue'

const a = 1
const b = ref(2)

defineExpose({
  a,
  b
})
</script>

相关文章

网友评论

      本文标题:vue3中ref的使用场景

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