相关文章
从零开始Vue3+Element Plus后台管理系统(十一)——Ctrl+K全局搜索站点路由功能
2025-01-03 10:03

又是一个有意思的功能——Ctrl+K唤起全局搜索,Vuejs官网、Tailwind CSS官网… 都用上了。

全局搜索功能可以帮助用户快速获取信息定位,对于改进用户体验感还是很有意义的。当然本项目做的是一个低配版,只对路由进行全局搜索,毕竟更多数据内容的搜索还得依靠后端返回,但是前端实现的思路是一致的。

  1. 唤起搜索对话框,通过点击顶部搜索按钮,或者使用快捷键Ctrl+K/Command+K
  2. 搜索框打开时,Input输入框自动focus
  3. 输入关键字,显示对应搜索结果
  4. 点击结果,跳转到对应页面

唤起搜索对话框

点击搜索图标这个太简单了,就不用写了

那么如何使用快捷键Ctrl+K/Command+K呢?可以自己写一个方法来监听按键,但是遇到按键组合的时候就变得复杂起来,所以这里我偷懒了,搬出强大后援vueuse

vueuse #usemagickeys

vueuse有好几个监听按键输入的事件,其中usemagickeys是可以用于按键组合的。

#usemagickeys https://vueuse.org/core/useMagicKeys/#usemagickeys

用法一看就会,引入之后,定义快捷键组合,然后使用watch监听即可。

 

自动聚焦 focus Input

打开对话框后,当然是希望可以焦点直接落在input输入框上,直接开始输入搜索。
需要使用el-dialog的open事件,对话框打开后,在nextTick中,focus the input element。

 
 

输入关键字,显示对应搜索结果

这里只搜索页面路由,搜索的结果集来自于项目中所有路由。

使用可以得到所有的路由,它是一个树状结构的数据,你可以遍历这棵树进行搜索。但我更喜欢把它扁平化之后再操作。

在对话框打开时,把路由数扁平化,以供搜索时使用。

这里注意把完整路径拼起来保存到扁平后的数组中,我们就可以直接在渲染的搜索结果列表中点击跳转到对应路由了。

 

搜索判断路由的name和title,模糊匹配关键字。

 

跳转页面

搜索结果数据中包含了完整路由数据,所以只需要,跳转的时候记得要调用关闭对话框的方法,要不然跳到新路由,对话框还在页面上😄

其实这个功能最麻烦的地方就是使用快捷键组合,vueuse完美解决了最棘手的部分,剩下的步骤基本都是基础操作,按步骤完成即可。

因为ts不熟练,所以代码有不少爆红的地方,还是要专门找一天好好学习ts才行啊,项目中红色波浪线〰️越来越多了。

本项目GIT地址:github.com/lucidity99/…

    以上就是本篇文章【从零开始Vue3+Element Plus后台管理系统(十一)——Ctrl+K全局搜索站点路由功能】的全部内容了,欢迎阅览 ! 文章地址:http://ww.kub2b.com/quote/12273.html 
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 企库往资讯移动站http://ww.kub2b.com/mobile/,查看更多   
发表评论
0评