php搜索下拉框,vue做出可搜索下拉框

本文详细介绍如何在Vue中实现可搜索下拉框,包括组件代码示例、注意事项以及如何在实际项目中应用。通过实例学习,提升Vue开发技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这次给大家带来vue做出可搜索下拉框,vue做出可搜索下拉框的注意事项有哪些,下面就是实战案例,一起来看一下。

实践加深对vue的理解和运用有效途径,本文是基于vue的可搜索下拉框定制组件实现,在此记录.

一、效果

f793b5620b3c1cfbdd8e56b899a5b0d3.gif

二、组件代码

dropdown.vue

@keyup='search($event)' :placeholder="placeholder" />

  • :key="index">

    {{item.name}}

{{nodatatext}}

export default {

data(){

return {

_datalist:this.itemlist.concat(),

datalist:this.itemlist.concat(),

length:this.itemlist.length

}

},

props:{

'show':{//用于外部控制组件的显示/隐藏

type:Boolean,

default:true

},

'itemlist':Array,

'placeholder':String,

'nodatatext':String

},

directives:{

'show-extend':function(el,binding,vnode){//bind和 update钩子

let value = binding.value,searchInput = null;

if(value){

el.style.display='block';

}else{//隐藏后,恢复初始状态

el.style.display='none';

searchInput = el.querySelector(".search-text");

searchInput.value = '';

vnode.context.datalist = vnode.context.itemlist;//还原渲染数据

}

}

},

methods:{

appClick:function(data){

this.$emit('item-click',data);

},

search:function(e){

let vm = this,searchvalue = e.currentTarget.value;

vm.datalist = vm.$data._datalist.filter(function(item,index,arr){

return item.name.indexOf(searchvalue) != -1;

});

}

},

mounted:function(){

}

}

.vue-dropdown.default-theme {

position: absolute;

left:15%;

display: none;

width: 70%;

margin: 0 auto;

margin-top: 1em;

padding: 1em;

z-index:10;

box-shadow: 0px 0px 10px #ccc;

&._self-show {

display: block!important;

}

.search-module {

position: relative;

.search-text {

width: 100%;

height: 30px;

padding-right: 2em;

padding-left:0.5em;

border-radius: 0.5em;

box-shadow: none;

border: 1px solid #ccc;

&:focus {

border-color: #2198f2;

}

}

.search-icon {

position: absolute;

top: 24%;

right: 0.5em;

color: #aaa;

}

}

.list-module {

max-height: 200px;

overflow-y: auto;

li {

&._self-hide {

display: none;

}

margin-top: 0.5em;

padding: 0.5em;

&:hover {

cursor:pointer;

color: #fff;

background: #00a0e9;

}

}

}

}

.tip__nodata {

font-size: 12px;

margin-top: 1em;

}

三、组件使用

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值