前言
對于那些開始學習Vue的人來說,對于方法、計算屬性和觀察者之間的區別有點混淆。
盡管通常可以使用它們中的每一個來完成或多或少相同的事情,但了解每個人在哪里勝過其他人還是很重要的。
在這個快速提示中,我們將了解Vue應用程序的這三個重要方面及其用例。我們將通過使用這三種方法中的每一種構建相同的搜索組件來實現這一點。
Methods
在一個方法中,或多或少是您所期望的——一個對象屬性的函數。您可以使用方法對發生在DOM中的事件作出反應,或者可以從組件中的其他位置調用它們,例如,從計算屬性或觀察者中調用它們。方法用于對公共功能進行分組-例如,處理表單提交,或構建可重用的功能,如發出Ajax請求。
在Vue實例中的methods對象內創建方法:
new Vue({ el: "#app", methods: { handleSubmit() {} }})當您想在模板中使用它時,您可以這樣做:
<div id="app"> <button @click="handleSubmit"> Submit </button></div>
我們使用v-on指令將事件處理程序附加到dom元素,該元素也可以縮寫為@符號。
現在,每次單擊按鈕時都會調用handleSubmit方法。對于要傳遞方法體中需要的參數的實例,可以執行以下操作:
<div id="app"> <button @click="handleSubmit(event)"> Submit </button></div>
這里我們傳遞一個事件對象,例如,它允許我們在表單提交的情況下阻止瀏覽器的默認操作。
但是,當我們使用一個指令來附加事件時,我們可以使用一個修飾符來更優雅地實現相同的事情: @click.stop=“handleSubmit” 。
現在我們來看一個使用方法過濾數組中數據列表的示例。
In the demo, we want to render a list of data and a search box. The data rendered changes whenever a user enters a value in the search box. The template will look like this:
在演示中,我們要呈現一個數據列表和一個搜索框。每當用戶在搜索框中輸入值時,所呈現的數據都會發生更改。模板將如下所示:
<div id="app"> <h2>Language Search</h2> <div class="form-group"> <input type="text" v-model="input" @keyup="handleSearch" placeholder="Enter language" class="form-control" /> </div> <ul v-for="(item, index) in languages" class="list-group"> <li class="list-group-item" :key="item">{{ item }}</li> </ul></div>如您所見,我們引用的是handlesearch方法,每次用戶在搜索字段中鍵入內容時都會調用該方法。我們需要創建方法和數據:
新聞熱點
疑難解答
圖片精選