先看效果图(稍微丑点…,功能可以就行)
当搜索框没有内容的时候下方是不显示的
1、html部分
<view style="margin-top: 50rpx;">
<input type="text" v-model="searchText" style="border: 1rpx solid red;width: 90%;margin: 30rpx auto;"/>
</view>
//当input有值的时候才显示
<view v-if="searchText" v-for="(item,index) in searchResult" :key="index" style="display: flex;">
<view>{{item.name}}</view>
</view>
2、js部分(数据暂时写死的,后期可以从服务端获取)
return {
address: '',
lat: '',
lng: '',
searchText: '',
list: [{
name: '苹果'
},
{
name: '香蕉'
},
{
name: 'aa'
},
{
name: 'bb'
},
{
name: '11'
},
{
name: '22'
}
]
}
在computed监听输入
computed: {
searchResult() {
// 过滤数据,返回所有符合条件的数据
return this.list.filter((info) => {
// 用match()来模糊匹配,可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配
return info.name.match(this.searchText)
})
}
}
如果想要点击跳转到指定页面可以:
uni.navigateTo({
url:'目标页面?' + 指定的id
})