用于搜索場景的輸入框組件。
通過以下方式來全局注冊組件,更多注冊方式請參考組件注冊。
import { createApp } from 'vue';
import { Search } from 'vant';
const app = createApp();
app.use(Search);
v-model 用于控制搜索框中的文字,background 可以自定義搜索框外部背景色。
<van-search v-model="value" placeholder="請輸入搜索關(guān)鍵詞" />
import { ref } from 'vue';
export default {
setup() {
const value = ref('');
return { value };
},
};
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 輸入法中顯示搜索按鈕。
通過 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>
參數(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 | - |
事件名 | 說明 | 回調(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 | 取消輸入框焦點 | - | - |
名稱 | 說明 |
---|---|
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 事件,參見桌面端適配。
更多建議: