vue中,refs是一個指向組件或HTML元素的引用,可以被用來訪問組件的方法或DOM元素的屬性。在vue中使用refs的方法非常簡單,只需給組件或HTML元素添加ref屬性,然后在vue實例中使用$refs就可以訪問到這個組件或元素。
// HTML代碼 <template> <div> <input ref="inputBox" v-model="message" /> <button v-on:click="showMessage">顯示消息</button> </div> </template> // JS代碼 new Vue({ el: '#app', data: { message: '' }, methods: { showMessage: function() { alert(this.$refs.inputBox.value); } } });
在上面的例子中,我們給input元素添加了一個ref屬性,并且在vue實例的methods中使用了$refs.inputBox獲取到這個元素,然后就可以直接訪問該元素的value屬性。注意,在使用$refs訪問DOM元素的屬性時,要確保這個元素已經被渲染到頁面中。
除了可以訪問DOM元素的屬性,也可以使用refs訪問組件的方法。假設我們有一個TodoList組件,這個組件有一個addTodo方法,我們可以通過給這個組件添加ref屬性,然后在vue實例中使用$refs訪問到這個組件,并且調用addTodo方法。
// HTML代碼 <template> <div> <todo-list ref="todoList"/> <button v-on:click="addTodo"></button>新增todo </div> </template> // JS代碼 import TodoList from './TodoList.vue' new Vue({ el: '#app', components: { TodoList }, methods: { addTodo: function() { this.$refs.todoList.addTodo('new todo'); } } })
在上面的例子中,我們通過import引入了一個TodoList組件,并且在vue實例中注冊了這個組件。然后我們給這個組件添加了一個ref屬性,并且在vue實例的methods中使用$refs.todoList獲取到這個組件,然后就可以直接調用addTodo方法。