首页 > 编程语言 >uniapp开发微信小程序之搜索联想、高亮显示(附demo)

uniapp开发微信小程序之搜索联想、高亮显示(附demo)

时间:2024-10-18 12:50:27浏览次数:8  
标签:uniapp search 高亮 demo return 搜索 pinyin uni 微信

小程序比较常见的功能就是搜索,搜索的一个体验点就联想、高亮显示,惯例还是先看效果。

实现效果

实现思路

1) uni-search-bar搜索框,监听input事件,触发搜索联想

2)调用后台接口,根据分词查询数据(Top N),返回前端数据

3)前端利用正则表达式,匹配数据中的分词,添加高亮样式

4)v-html标签显示内容

5)行记录监听click事件,跳转详情页

引入组件

先引入uni-search-bar,展示搜索框

前端代码

index.vue:uni-search-bar搜索框,跳转搜索页

    <view @click="search" class="search-area">      <uni-search-bar readonly radius="100" cancelButton="none" placeholder="成语检索" bgColor="#f8f8f8"/>    </view>
    methods: {      search(){        uni.navigateTo({url:'/pages/index/search'});      }    }

search.vue:搜索联想、高亮显示

  <view>    <uni-search-bar radius="100" :focus="true" cancelButton="none" placeholder="学富五车" v-model="keys" @input="search" />  </view>  <uni-list  v-for="(idiom, index) in idioms" :key="idiom.pinyin">    <view class="item"  @click="viewIdiom(idiom.pinyin)">      <view class="title" v-html="idiom.name"></view>      <view class="rightText" >{{idiom.pinyin}}</view>    </view>  </uni-list>
      search(e) {        //无检索词时不处理        if(this.keys==''){          return ;        }        this.idioms = this.getIdioms(this.keys)        if(this.idioms&&this.keys.length>0){          this.keys.split('').forEach(key => {//按照字分词,实际项目中自行设置规则            this.idioms.forEach(idiom => {                idiom.name = this.highlight(idiom.name,key);            })          })        }      }
      //分词匹配并设置高亮样式      highlight(name,key) {        const regExp = new RegExp(key, 'gi');        return name.replace(regExp, match => {            return `<span style="color: red;">${match}</span>`; //可以定义高亮的样式        });      }
      //查看详情      viewIdiom(pinyin){        uni.navigateTo({          url:'/pages/index/view?pinyin='+pinyin        })      }

view.vue:详情页

<template>  <view class="content">    <image class="logo" src="/static/logo.png"></image>    <view class="text-area">      {{pinyin}}    </view>  </view></template><script>  export default {    data() {      return {        pinyin: 'Hello'      }    },    onl oad(e) {      this.pinyin =e.pinyin    },    methods: {    }  }</script>

说明:onLoad方法e接受上一页传参

前端demo工程:https://ext.dcloud.net.cn/plugin?id=20635

已上传dcloud插件库,等待审核中。审核完成后评论区更新地址,有需要的同学可以先评论区留言,私信发送。

最后介绍下我开发了两款微信小程序:趣味知识宝典萌娃成长,大家可以免费使用,多多支持下!

趣味知识宝典:一款知识学习工具,在趣味中学习知识,包括成语(包含成语拼音、释义、出处、语法、例句、近义词、反义词、故事(寓言故事、历史典故)等,按照寓言、高考(近10年)、时间等多维度分类),科普知识(十万为什么),谜语(猜字谜、脑筋急转弯)等。

萌娃成长:育儿好帮手,奶瓶喂养、母乳亲喂、辅食喂养、补剂用药、换尿不湿、睡眠记录、身高体重、疫苗接种、发育评估(DQ)统统搞定,记录宝宝成长每个瞬间,与宝妈奶爸一起交流育儿经验,与萌娃一起健康快乐成长。

标签:uniapp,search,高亮,demo,return,搜索,pinyin,uni,微信
From: https://blog.csdn.net/superpole/article/details/143012647

相关文章

  • 免费送源码:Javat微信小程序 基于springboot高校教学评价平台 计算机毕业设计原创定制
    摘 要随着中国经济的飞速增长,消费者的智能化水平不断提高,许多智能手机和相关的软件正在得到更多的关注和支持。其中,微信小程序的高校教学评价平台更是深得消费者的喜爱,它的出现极大地改善了消费者的生活质量,同时,它还创造了一种快捷、有效的数据信息管理网络平台,让消费者更......
  • Vue3 - 详细实现移动端H5网页调用摄像头拍照功能,微信公众号网页h5页面打开本地摄像头
    前言PC网站端,请访问这篇文章。在vue3手机移动端开发中,详解H5页面/微信公众号网页调用浏览器摄像头并拍照完整示例,在手机浏览器上开启摄像头并拍照上传服务器或保存到本地功能(实时预览使用图片临时路径或base64数据),切换转换前置摄像头与后置摄像头,vue3手机H5打开摄像......
  • 基于微信平台的房屋租赁公司电费管理系统 (案例分析)-附源码
    摘 要随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,房屋租赁公司电费管理系统被用户普遍使用,为方便用户能够可以随时进行房屋租赁公司电费的数据信息管理,特开发了基于微信平......
  • 微信小程序的校园二手物品交易平台设计与实现
    文章目录前言......
  • 麻将计分器微信小程序的开发
    前言最近朋友推荐了一个计分的小程序,但是这个小程序不仅打开有广告,各个页面都植入了广告,用起来十分不适。于是我就心里暗自下定决心,一定要撸一个没有广告的小程序。一周后,这个小程序发布了。欢迎大家参观和使用我的小程序!小程序名称:MahjongScorer思路1.注册,获取头像和昵称。......
  • 2025计算机专业基于微信小程序的毕业设计选题参考【题目新颖】
    对于计算机专业基于微信小程序的毕业设计选题,追求新颖性是关键。以下是一些建议的选题,它们结合了当前的技术趋势和社会需求,旨在提供具有创新性和实用性的项目方向:1.基于微信小程序的智能健康管理系统 结合物联网设备,如智能手环、体重秤等,收集用户的健康数据。 通过小程......
  • uni-app 微信小程序——尺寸大小
    设计稿中微信小程序一般宽度设为375px,对应到uniapp就是750rpx宽度uni-app支持通用css单位px,rpx px即屏幕像素 rpx即响应式px,一种根据屏幕宽度自适应的动态单位。以750宽的屏幕为基准。750rpx恰好为屏幕宽度。屏幕变宽,rpx实际显示效果会等比放大。vue页面支持普通h5单位......
  • 微信小游戏分包
    简介微信分包是针对unity转成小游戏的c#代码分包,小程序是js代码,安卓的c#解析成js功能比较好,一般不分包可以手机预览扫码进入游戏,但是苹果解析js功能不太好,需要分包,提升运行性能,苹果还需要开高性能模式。如果分包后苹果仍然进不去,那么换一台苹果手机再试试。(部分苹果手机需要上......
  • Java基于微信小程序的大学生兼职管理系统,附源码+文档
    博主介绍:✌Java老徐、7年大厂程序员经历。全网粉丝12w+、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌......
  • 关于微信分享自定义标题,说明,图标基于PHP的功能实现
    1.首先先从微信公众平台获取AppId和AppSecret。不会的自行查询。比如要访问的服务器目录是www.xxxx.com。那么在这个目录下可以创建一个目录WeChat,在WeChat下分别创建文件access_token.json、config.php、jsapi_ticket.json、weChatShare.js。2.access_token.json和jsapi_ticke......