Vue的$ref是一個很有用的特性。它允許我們在模版中訪問組件或元素的引用。因此,我們可以通過代碼在組件中訪問這些元素,使用諸如focus()、scrollIntoView()等方法訪問元素。
在使用$ref之前,我們需要在模版中使用ref屬性來為需要引用的組件或元素命名。然后我們可以在JavaScript中使用$refs來訪問它們。例如,下面的代碼為兩個input標簽分別設置了ref,然后通過$refs訪問了它們:
<template> <div> <input type="text" ref="input1"> <input type="text" ref="input2"> </div> </template> <script> export default { methods: { focusInput1() { this.$refs.input1.focus(); }, focusInput2() { this.$refs.input2.focus(); } } } </script>
在上面的代碼中,我們使用$refs.input1和$refs.input2訪問了兩個input元素,并在方法中調用了它們的focus()方法。
$ref不僅可以應用于元素,還可以應用于組件。同樣,我們需要在模版中使用ref屬性給我們需要引用的組件命名。在JavaScript中,我們可以通過$refs訪問它們。例如:
<template> <div> <my-component ref="myComponent"></my-component> </div> </template> <script> import MyComponent from './MyComponent.vue'; export default { components: { 'my-component': MyComponent }, methods: { doSomething() { this.$refs.myComponent.doSomething(); } } } </script>
在上面的代碼中,我們使用$refs.myComponent訪問了我們的子組件MyComponent,并在方法中調用了它的doSomething()方法。