Vant3 Search 搜索

2021-09-09 16:39 更新

介紹

用于搜索場景的輸入框組件。

實例演示

引入

通過以下方式來全局注冊組件,更多注冊方式請參考組件注冊

import { createApp } from 'vue';
import { Search } from 'vant';

const app = createApp();
app.use(Search);

代碼演示

基礎(chǔ)用法

v-model 用于控制搜索框中的文字,background 可以自定義搜索框外部背景色。


<van-search v-model="value" placeholder="請輸入搜索關(guān)鍵詞" />
import { ref } from 'vue';

export default {
  setup() {
    const value = ref('');
    return { value };
  },
};

事件監(jiān)聽

Search 組件提供了 search 和 cancel 事件,search 事件在點擊鍵盤上的搜索/回車按鈕后觸發(fā),cancel 事件在點擊搜索框右側(cè)取消按鈕時觸發(fā)。


<form action="/">
  <van-search
    v-model="value"
    show-action
    placeholder="請輸入搜索關(guān)鍵詞"
    @search="onSearch"
    @cancel="onCancel"
  />
</form>
import { ref } from 'vue';
import { Toast } from 'vant';

export default {
  setup() {
    const value = ref('');
    const onSearch = (val) => Toast(val);
    const onCancel = () => Toast('取消');
    return {
      value,
      onSearch,
      onCancel,
    };
  },
};
Tips: 在 van-search 外層增加 form 標(biāo)簽,且 action 不為空,即可在 iOS 輸入法中顯示搜索按鈕。

搜索框內(nèi)容對齊

通過 input-align 屬性設(shè)置搜索框內(nèi)容的對齊方式,可選值為 center、right。


<van-search
  v-model="value"
  placeholder="請輸入搜索關(guān)鍵詞"
  input-align="center"
/>

禁用搜索框

通過 disabled 屬性禁用搜索框。


<van-search v-model="value" disabled placeholder="請輸入搜索關(guān)鍵詞" />

自定義背景色

通過 background 屬性可以設(shè)置搜索框外部的背景色,通過 shape 屬性設(shè)置搜索框的形狀,可選值為 round。


<van-search
  v-model="value"
  shape="round"
  background="#4fc08d"
  placeholder="請輸入搜索關(guān)鍵詞"
/>

自定義按鈕

使用 action 插槽可以自定義右側(cè)按鈕的內(nèi)容。使用插槽后,cancel 事件將不再觸發(fā)。


<van-search
  v-model="value"
  show-action
  label="地址"
  placeholder="請輸入搜索關(guān)鍵詞"
  @search="onSearch"
>
  <template #action>
    <div @click="onSearch">搜索</div>
  </template>
</van-search>

API

Props

參數(shù) 說明 類型 默認(rèn)值
label 搜索框左側(cè)文本 string -
shape 搜索框形狀,可選值為 round string square
background 搜索框外部背景色 string #f2f2f2
maxlength 輸入的最大字符數(shù) number | string -
placeholder 占位提示文字 string -
clearable 是否啟用清除圖標(biāo),點擊清除圖標(biāo)后會清空輸入框 boolean true
clear-icon v3.0.12 清除圖標(biāo)名稱或圖片鏈接 string clear
clear-trigger 顯示清除圖標(biāo)的時機,always 表示輸入框不為空時展示,
focus 表示輸入框聚焦且不為空時展示
string focus
autofocus 是否自動聚焦,iOS 系統(tǒng)不支持該屬性 boolean false
show-action 是否在搜索框右側(cè)顯示取消按鈕 boolean false
action-text 取消按鈕文字 boolean 取消
disabled 是否禁用輸入框 boolean false
readonly 是否將輸入框設(shè)為只讀狀態(tài),只讀狀態(tài)下無法輸入內(nèi)容 boolean false
error 是否將輸入內(nèi)容標(biāo)紅 boolean false
error-message 底部錯誤提示文案,為空時不展示 string -
formatter v3.0.12 輸入內(nèi)容格式化函數(shù) (val: string) => string -
format-trigger v3.0.12 格式化函數(shù)觸發(fā)的時機,可選值為 onBlur string onChange
input-align 輸入框內(nèi)容對齊方式,可選值為 center right string left
left-icon 輸入框左側(cè)圖標(biāo)名稱或圖片鏈接 string search
right-icon 輸入框右側(cè)圖標(biāo)名稱或圖片鏈接 string -

Events

事件名 說明 回調(diào)參數(shù)
search 確定搜索時觸發(fā) value: string (當(dāng)前輸入的值)
update:model-value 輸入框內(nèi)容變化時觸發(fā) value: string (當(dāng)前輸入的值)
focus 輸入框獲得焦點時觸發(fā) event: Event
blur 輸入框失去焦點時觸發(fā) event: Event
click-input 點擊輸入?yún)^(qū)域時觸發(fā) event: MouseEvent
clear 點擊清除按鈕后觸發(fā) event: MouseEvent
cancel 點擊取消按鈕時觸發(fā) -

方法

通過 ref 可以獲取到 Search 實例并調(diào)用實例方法,詳見組件實例方法。

方法名 說明 參數(shù) 返回值
focus 獲取輸入框焦點 - -
blur 取消輸入框焦點 - -

Slots

名稱 說明
left 自定義左側(cè)內(nèi)容(搜索框外)
action 自定義右側(cè)內(nèi)容(搜索框外),設(shè)置show-action屬性后展示
label 自定義左側(cè)文本(搜索框內(nèi))
left-icon 自定義左側(cè)圖標(biāo)(搜索框內(nèi))
right-icon 自定義右側(cè)圖標(biāo)(搜索框內(nèi))

樣式變量

組件提供了下列 CSS 變量,可用于自定義樣式,使用方法請參考 ConfigProvider 組件

名稱 默認(rèn)值 描述
--van-search-padding 10px var(--van-padding-sm) -
--van-search-background-color var(--van-white) -
--van-search-content-background-color var(--van-gray-1) -
--van-search-input-height 34px -
--van-search-label-padding 0 5px -
--van-search-label-color var(--van-text-color) -
--van-search-label-font-size var(--van-font-size-md) -
--van-search-left-icon-color var(--van-gray-6) -
--van-search-action-padding 0 var(--van-padding-xs) -
--van-search-action-text-color var(--van-text-color) -
--van-search-action-font-size var(--van-font-size-md) -

常見問題

在桌面端點擊清除按鈕無效?

清除按鈕監(jiān)聽是的移動端 Touch 事件,參見桌面端適配。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號