vue中el-autocomplete與el-select的異同
前言
最近項目裡面需要使用到下拉框的遠程搜索,我這邊使用的是el-select
,其實查看文檔我們可以得知,還可以使用el-autocomplete
來實現遠程搜索。
那麼它們具體有何異同呢?今天我們來看看。
異同
el-autocomplete
el-autocomplete是使用fetch-suggestions
方法實現,當輸入的時候,會調用我們提供的方法,傳入的參數是輸入的value,以及callback。
我們要把請求到的下拉列表通過callback返回(列表的每一項以key為value
的形式傳,也可以通過value-key
換成其它key)。
代碼如下:
<el-autocomplete v-model="value" :fetch-suggestions="querySearchAsync" placeholder="請輸入內容" ></el-autocomplete> export default { data () { return { value: '' } }, methods: { querySearchAsync (queryString, cb) { setTimeout(() => { cb([{value: '答案cp3'}]) }, 200) } }
可以看到el-autocomplete實時輸入的時候,value也是實時變化的,並且,你選中選項,再次拉起選項的時候,不會有選中的效果。
所以el-autocomplete可以理解為輸入建議的組件。
el-select
el-select的遠程搜索是通過remote-method
來實現。當你輸入的時候,會調用remote-method
對應的方法來實現。參數是傳入當前輸入的value值。
然後我們請求後,把el-select的option賦值就可以瞭。
代碼如下:
<el-select v-model="value" filterable remote reserve-keyword placeholder="請輸入關鍵詞" :remote-method="remoteMethod" :loading="reqLoading" > <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option> </el-select> export default { data () { return { value: '', reqLoading: false, options: [] } }, methods: { remoteMethod (query) { if (query !== '') { this.reqLoading = true setTimeout(() => { this.reqLoading = false this.options = [{label: '答案cp3',value: '答案cp3'}] }, 200) } else { this.options = [] } } }
el-select輸入的時候value不會實時變化,而是你要選擇下面的option才會變化。
然後它選中瞭,下次打開會有選中的效果。
總結
- el-autocomplete主要是針對輸入建議,value會實時刷新,選中不會有選中效果。
- el-select value不會實時刷新,選中才會更新value,並且選中會有選中效果。
到此這篇關於vue中el-autocomplete與el-select的異同的文章就介紹到這瞭,更多相關el-autocomplete與el-select內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Element-ui 自帶的兩種遠程搜索(模糊查詢)用法講解
- 前端elementUI select選擇器實現遠程搜索
- 淺談ElementUI el-select 數據過多解決辦法
- Vue設置select下拉框的默認選項詳解(select空白bug解決)
- Vue中select下拉框的默認選中項的三種情況解讀