🔥 新しいプロジェクトをご紹介します t0ggles -究極のプロジェクト管理ツール! 🔥

検索バー Vue コンポーネント

検索バーを使用すると、リストビュー要素を検索できます。または、カスタム検索の実装のための視覚的なUIコンポーネントとして使用できます。

検索バーコンポーネント

次のコンポーネントが含まれています

  • 検索バー

検索バープロパティ

名前デフォルト説明
clearButtonbooleantrue

入力クリアボタンを追加します

colorsobject

Tailwind CSSカラークラスを含むオブジェクト

colors.inputBgIosstring''
colors.inputBgMaterialstring'bg-md-light-secondary-container dark:bg-md-dark-secondary-container'
colors.placeholderIosstring''
colors.placeholderMaterialstring'placeholder-md-light-on-surface-variant dark:placeholder-md-dark-on-surface-variant'
componentstring'div'

コンポーネントのHTML要素

disableButtonbooleanfalse

検索をキャンセルするためのボタンを追加し、その初期状態を設定します

disableButtonTextstring'キャンセル'

無効化ボタンテキスト

inputIdstring

input のid属性

inputStyleCSSProperties

追加の入力クラス

placeholderstring | string'検索'

検索バーのプレースホルダー

valueany

検索バーの値

検索バーイベント

名前説明
blurfunction(e)

blurイベントハンドラー

changefunction(e)

changeイベントハンドラー

clearfunction(e)

クリアボタンクリック時に発生します

disablefunction(e)

検索バーが無効化されたときに発生します

focusfunction(e)

focusイベントハンドラー

inputfunction(e)

inputイベントハンドラー

Searchbar.vue
<template>
<k-page>
<k-navbar title="Searchbar">
<template #subnavbar>
<k-searchbar
:value="searchQuery"
disable-button
disable-button-text="Cancel"
@clear="handleClear"
@disable="handleDisable"
@input="handleSearch"
>
</k-searchbar>
</template>
</k-navbar>
<k-list strong inset-material outline-ios>
<k-list-item v-if="filteredItems.length === 0" title="Nothing found" />
<k-list-item
v-for="item in filteredItems"
:key="item.title"
:title="item.title"
/>
</k-list>
</k-page>
</template>
<script>
import { ref, watch } from 'vue';
import {
kPage,
kNavbar,
kNavbarBackLink,
kSearchbar,
kList,
kListItem,
} from 'konsta/vue';
const items = [
{ title: 'FC Ajax' },
{ title: 'FC Arsenal' },
{ title: 'FC Athletic' },
{ title: 'FC Barcelona' },
{ title: 'FC Bayern München' },
{ title: 'FC Bordeaux' },
{ title: 'FC Borussia Dortmund' },
{ title: 'FC Chelsea' },
{ title: 'FC Galatasaray' },
{ title: 'FC Juventus' },
{ title: 'FC Liverpool' },
{ title: 'FC Manchester City' },
{ title: 'FC Manchester United' },
{ title: 'FC Paris Saint-Germain' },
{ title: 'FC Real Madrid' },
{ title: 'FC Tottenham Hotspur' },
{ title: 'FC Valencia' },
{ title: 'FC West Ham United' },
];
export default {
components: {
kPage,
kNavbar,
kNavbarBackLink,
kSearchbar,
kList,
kListItem,
},
setup() {
const searchQuery = ref('');
const handleSearch = (e) => {
searchQuery.value = e.target.value;
};
const handleClear = () => {
searchQuery.value = '';
};
const handleDisable = () => {
console.log('Disable');
};
const filteredItems = ref(items);
watch(searchQuery, () => {
filteredItems.value = searchQuery.value
? items.filter((item) =>
item.title.toLowerCase().includes(searchQuery.value.toLowerCase())
)
: items;
});
return {
searchQuery,
filteredItems,
handleSearch,
handleClear,
handleDisable,
};
},
};
</script>
ライセンス MIT.
2022 © Konsta UI by nolimits4web.