程序员书籍笔记 程序员书籍笔记
  • HTML
  • CSS
  • JavaScript
  • 前端知识
  • Vue
  • MarkDown
  • git
  • Node.js
  • Linux
  • 51单片机
  • 四级
  • 第一学期课程
  • 操作系统
  • 计算机网络
  • 数据结构
  • 计算机组成原理
  • HTML5
  • Electron
  • 日记便签
  • 前端导航
GitHub (opens new window)
  • HTML
  • CSS
  • JavaScript
  • 前端知识
  • Vue
  • MarkDown
  • git
  • Node.js
  • Linux
  • 51单片机
  • 四级
  • 第一学期课程
  • 操作系统
  • 计算机网络
  • 数据结构
  • 计算机组成原理
  • HTML5
  • Electron
  • 日记便签
  • 前端导航
GitHub (opens new window)
  • Vue

  • Nuxt

  • Echarts

  • Node

  • git

  • express

  • 微信小程序

  • Spring

  • 后端知识

  • Markdown

  • project

    • 黑马头条

      • 移动端适配
      • 黑马头条
      • 黑马头条初始化
      • 黑马头条登入注册
      • 个人中心
      • 文章列表展示
      • 模块编辑
      • 文章搜索
        • 文章搜索
        • 联想建议组件
        • 搜索历史组件
        • 本地持久化
      • 文章详情
      • 文章评论
      • 用户编辑
    • 小兔鲜

    • saas中台管理项目

  • 自用文档查询

  • 框架和软件
  • project
  • 黑马头条
yuadh
2022-03-25
目录

文章搜索

# 文章搜索

使用路由的文章搜索页面

  • 使用 vant-search 来画页面

总体三部分功能的文章搜索

  • 搜索历史
  • 联想建议
  • 搜索结果

三部分的显示有一个逻辑,实现这个逻辑合理显示三个页面

画出简单的三组件页面

# 联想建议组件

  • 事件监听 , 组件通信 ,一旦搜到父组件传来的数据,监听到进行处理
  • 封装网络请求 请求得到数据 循环铺设数据

loadsh.js 第三方包工具库 ,里面有防抖函数 ,对网络请求作优化防止请求太快

  • 读联想建议设置高亮

    v-html 将字符串解析为 html

    使用 正则表达式 筛选需要高亮的字符串

  • 点击搜索,获取搜索结果 组件通信,将联想建议传递给父组件 在传递给搜索结果组件

    • 封装网络请求
    • 发送请求完成 页面,文章数等逻辑 vant-list

# 搜索历史组件

简单的画出 css 界面

要求

  • 不要有重复历史记录
  • 最新的历史记录排在前面
//简单实现
this.searchText = val
const index = this.searchHistories.indexOf(val)
if(index!=-1){
    this.searchHistories.splice(index,1)//如果存在就删除
}
this.searchHistories.unshift(val)//添加或覆盖
1
2
3
4
5
6
7
  • 循环铺设历史记录数据

删除和搜索逻辑点击完成

可以对父组件的数据进行引用类型值操作,但是不能直接赋值,即点击全部删除之后,需要组件通信 让父组件去清空搜索历史数据

而当个历史记录的点击可以引用类型值删除

非删除状态的点击事件

组件通信,让父组件去搜索关键词

# 本地持久化

利用封装好的本地存储,对搜索历史记录来进行存取操作

编辑 (opens new window)
上次更新: 2023/02/07, 14:51:48
模块编辑
文章详情

← 模块编辑 文章详情→

Theme by Vdoing | Copyright © 2021-2023 yuadh
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×