uni-app仿淘宝搜索功能,包括历史关键词记录与搜索候选关键词推荐

uni-app仿淘宝搜索功能,包括历史关键词记录与搜索候选关键词推荐

1 回复

更多关于uni-app仿淘宝搜索功能,包括历史关键词记录与搜索候选关键词推荐的实战教程也可以访问 https://www.itying.com/category-93-b0.html


实现uni-app仿淘宝搜索功能,包括历史关键词记录与搜索候选关键词推荐,可以通过以下代码案例进行实现。这里我们假设你已经有一个uni-app项目,并且已经安装了相关的依赖。

1. 数据存储

首先,我们需要一个地方来存储历史搜索关键词和推荐关键词。这里我们使用uni-app的本地存储(localStorage)来保存历史关键词,推荐关键词可以从服务器获取或直接在本地定义。

// 存储历史关键词
function saveSearchHistory(keyword) {
    const history = JSON.parse(localStorage.getItem('searchHistory')) || [];
    if (!history.includes(keyword)) {
        history.unshift(keyword);
        if (history.length > 10) {
            history.pop();
        }
        localStorage.setItem('searchHistory', JSON.stringify(history));
    }
}

// 获取历史关键词
function getSearchHistory() {
    return JSON.parse(localStorage.getItem('searchHistory')) || [];
}

2. 搜索组件

创建一个搜索组件,展示输入框、历史关键词和推荐关键词。

<template>
    <view>
        <input v-model="keyword" @input="onInput" placeholder="搜索商品"/>
        <view v-if="history.length">
            <text v-for="(item, index) in history" :key="index" @click="onSearchHistory(item)">{{ item }}</text>
        </view>
        <view v-if="recommendations.length">
            <text v-for="(item, index) in recommendations" :key="index" @click="onSearchRecommendation(item)">{{ item }}</text>
        </view>
    </view>
</template>

<script>
export default {
    data() {
        return {
            keyword: '',
            history: getSearchHistory(),
            recommendations: ['推荐关键词1', '推荐关键词2', '推荐关键词3'] // 假设从服务器获取
        };
    },
    methods: {
        onInput(e) {
            saveSearchHistory(e.target.value);
            this.history = getSearchHistory(); // 更新历史记录
        },
        onSearchHistory(keyword) {
            this.keyword = keyword;
            // 执行搜索操作
        },
        onSearchRecommendation(keyword) {
            this.keyword = keyword;
            // 执行搜索操作
        }
    }
};
</script>

3. 样式调整

你可以根据需求调整样式,比如输入框的样式、历史关键词和推荐关键词的样式等。

<style scoped>
input {
    border: 1px solid #ddd;
    padding: 10px;
    width: 100%;
    box-sizing: border-box;
}
text {
    display: block;
    padding: 5px;
    background: #f9f9f9;
    margin: 5px 0;
    cursor: pointer;
}
text:hover {
    background: #eee;
}
</style>

以上代码展示了如何实现uni-app中的搜索功能,包括历史关键词记录和推荐关键词的展示。你可以根据实际需求进一步完善和扩展功能,比如从服务器获取推荐关键词、优化样式等。

回到顶部