Vueμ μ μΈμ λ λλ§ λͺ¨λΈμ λλΆλΆμ μ§μ μ μΈ DOMμ μμ μ λμ μννλ€. νμ§λ§ λλ‘ κΈ°λ³Έ DOMμμμ μ§μ μ κ·Όν΄μΌ νλ κ²½μ°κ° μμ μ μλ€. μ΄λ
ref
νΉμ μμ±μ μ¬μ©ν΄μ μ½κ² μ κ·Όν μ μλ€.
<input type="text" ref="input" />
ref
λ νΉμ μμ±μ΄λ€. μ΄ ref
νΉμ μμ±μ ν΅ν΄ λ§μ΄νΈλ DOM μμ λλ μμ μ»΄ν¬λνΈμ λν μ°Έμ‘°λ₯Ό μ»μ μ μλ€.
Composition APIλ‘ μ°Έμ‘°λ₯Ό μ»μΌλ €λ©΄ λμΌν μ΄λ¦μ μ°Έμ‘°λ₯Ό μ μΈν΄μΌ νλ€.
<template>
μμμ input
μΌλ‘ Refs
μ°Έμ‘°μ μ κ·Όνλ €λ κ²½μ° λ λλ§λκΈ° μ μλ μ°Έμ‘°κ° null
μΌ μ μλ€.<template>
μμμ $refs
λ΄μ₯ κ°μ²΄λ‘ Refs
μ°Έμ‘°μ μ κ·Όν μ μλ€.v3.2.25 μ΄μμμ λμ
v-for
λ΄λΆμμref
κ° μ¬μ©λ λref
λ λ§μ΄νΈ ν μμ λ°°μ΄λ‘ μ±μμ§λ€.
<script>
import { ref, onMounted } from 'vue'
export default {
setup() {
const list = ref([1, 2, 3]);
const itemRefs = ref([]);
onMounted(() => console.log(itemRefs.value))
return{ list, itemRefs }
}
}
</script>
ref
λ₯Ό μμ μ»΄ν¬λνΈμλ μ¬μ©ν μ μλ€.ref
λ‘ μμ μ»΄ν¬λνΈμ μ°Έμ‘°κ°μ μ»κ² λλ©΄ μμ μ»΄ν¬λνΈμ λͺ¨λ μμ±κ³Ό λ©μλμ λν μ 체λ₯Ό μ κ·Όν μ μλ€.
μ΄λ¬ν κ²½μ° λΆλͺ¨/μμ μ»΄ν¬λνΈκ° μμ‘΄λκ° μκΈ°κΈ° λλ¬Έμ μ΄λ¬ν λ°©λ²μ λ°λμ νμν κ²½μ°μλ§ μ¬μ©ν΄μΌ νλ€. κ·Έλ¦¬κ³ μΌλ°μ μΌλ‘ref
λ³΄λ€ νμ€ propsλ₯Ό μ¬μ©νμ¬ λΆλͺ¨/μμκ° μνΈμμ©μ ꡬνν΄μΌ νλ€.
child.vue
<template>
<div>Child Component</div>
</template>
<script>
import { ref } from `vue`;
export default {
setup() {
const message = ref('Hello Child!');
const sayHello = () => {
alert(message.value);
};
return { message, sayHello };
},
};
</script>
λΆλͺ¨ μ»΄ν¬λνΈμμ μμ μ»΄ν¬λνΈμ μνλ λ©μλμ μ κ·Όν μ μλ€.