<div class="search"><el-input placeholder="请输入搜索关键字" clearable v-model="keyWord" @keyup.enter.native="search" prefix-icon="el-icon-search"></el-input><div class="btn"><el-button type="text" @click="search">搜索</el-button></div></div>
  • @keyup 监听键盘事件,还有 keyup.esc keyup.up keyup.space keyup.tab
  • 如果用了组件封装的话,就要在事件后加上 .native
  • @click.stop 阻止事件冒泡,当父元素和子元素都有点击事件时,点击子元素区域,不触发父元素的点击事件
  • @click.prevent 阻止事件的默认行为,比如阻止 a 标签的自动跳转行为,阻止表单默认提交到 action 的行为
search(){if(!this.keyWord.trim()){this.$message.error("请正确输入搜索关键字")return}this.loading = truethis.isSearch = truethis.getList()},highLight(val,keyWord){const Reg = new RegExp(keyWord, 'i');let res = '';val = val + ''if (val) {res = val.replace(Reg, `<span style="color: #fff;background-color:#e85655">${keyWord}</span>`);this.loading = falsereturn res;}},
  • isSearch 来做标识,为 true ,则进行搜索,进行关键字的高亮
  • String.replace() 返回由替换值替换之后的新字符串
  • 如果不用正则表达式(i 不区分大小写,g 全局标记)匹配,则 String.replace() 只会替换第一个匹配项
  • 如果出现报错 val.replace is not a function ,有可能是 val 的值为数值类型,所以要先将其转为字符串 val = val + ''
<el-table-columnlabel="label"min-width="140"align="center"><template slot-scope="scope"><span v-if="!isSearch">{{ scope.row.name || "暂无数据" }}</span><span v-else v-html="highLight(scope.row.name, keyWord)"></span></template></el-table-column>
  • 一旦进行搜索,highLight 方法就会被触发
  • v-html 可成功解析 html 标签属性后再输出,可在其中自定义样式属性
  • v-textv-cloak 会将 html 标签当成字符串输出

参考链接:https://blog.csdn.net/wh13821662259/article/details/114652229
https://blog.csdn.net/fifteen718/article/details/80359844

Vue 项目中 高亮搜索关键字相关推荐

  1. Vue 项目中高亮格式化 xml 代码

    效果演示 安装插件 $ npm install highlight.js --save 代码实现 xml原文如下: <?xml version=\"1.0\" encodin ...

  2. Vue项目中利用pdf.js实现pdf内容滑选文字展示与搜索功能

    Vue项目中利用pdf.js实现pdf内容滑选文字展示与搜索功能 需求:在pdf中鼠标滑动选中一段文字,将选中文字展示到input框中(pdf在iframe中) 完成效果: 关于pdf的引用:我是直接 ...

  3. vue项目中 一行文本 文字 根据关键字 改变颜色 改变展示颜色2

    vue项目中 一行文本 文字 根据关键字 改变颜色 改变展示颜色2 <script src="https://unpkg.com/vue@3/dist/vue.global.js&qu ...

  4. vue项目中使用百度地图api完成自定义搜索功能(包含搜索详细地理位置)

    需求描述: 在vue项目中,有时候,我们需要自定义百度地图的一些功能.譬如,现在的需求,就是需要自定义搜索内容和结果展示. 类似如下页面的功能: 首先在vue项目中,我们可以使用 vue-baidu- ...

  5. 在vue项目中使用prismjs(网页代码高亮插件)

    在vue项目中使用prismjs 什么是prismjs prismjs是一款代码高亮美化插件,在一些技术博客类的网站中需要展示代码时,可以使用它类似与markdown的代码块, 官网链接:https: ...

  6. vue项目中引入monaco editor

    monaco-editor概述 monaco-editor 是微软开源的一款web代码编辑器,vscode就是集成monaco-editor来实现的. 官方示例 官方文档 使用 安装 npm安装 np ...

  7. vue项目中使用百度地图

    安装 首先在vue项目中,我们可以使用 vue-baidu-map 插件来替代直接引入百度地图js sdk. 官方文档 JavaScript API v2.0类参考 npm install --sav ...

  8. 百度地图的使用方法,如何在Vue项目中使用百度地图

    关于百度地图的解释 百度地图又称LBS:LocationBussinessServer,是基于定义位置的商业服务,现在常用的地图有百度地图和高德地图居多 官网入口 https://lbsyun.bai ...

  9. Vue项目中ESLint配置(VScode)

    Vue项目中ESLint配置(VScode) 1.VScode的配置格式化代码 1.1下载eslint插件 1.2配置setting.json 打开左上角文件-首选项-设置,在设置中搜索eslint, ...

最新文章

  1. C语言经典例30-判断回文数
  2. linux驱动的入口函数module_init的加载和释放
  3. 神策数据张何津:构建银行数字化运营体系,赋能业态新发展
  4. UVA-806 Spatial Structures (四分树)
  5. boost::signals2::deconstruct相关的测试程序
  6. python怎么做软件程序_如何打包和发布Python程序
  7. 挖槽!堪称神级的Java技术手册火了???(文末送书活动)
  8. 第一次HACK别人的DLL
  9. 一个基于DataTable的后台框架的实现
  10. 字符编码ASCII,Unicode和UTF-8
  11. 图书管理系统的E-R图和数据库模型图
  12. cmpp协议对服务器资源消耗大吗,cmpp协议采用什么安全算法 CMPP协议有啥用?
  13. java抽签_java制作一个简单的抽签程序
  14. imports build constraints exclude all Go files in
  15. 洛必达法则-求导的方法求解出极限
  16. Linux虚拟机修改主机名称,设置域名
  17. 用Python爬取京东手机评论
  18. Arcgis(二) 绘制区域划分示意图——以重庆五大功能区为例
  19. 线性调频脉冲雷达信号
  20. 源发行版17需要目标发行版17

热门文章

  1. 【91xcz】虚拟内存怎么设置才是最好的状态
  2. 关于winsock2.h的重定义解决办法
  3. win10系统网络中看不见计算机,win10系统下网上邻居看不到其他共享电脑的4个解决方法...
  4. 拥抱 TS:细数选择 TS 的 N 种理由
  5. 零基础学Python--------第10章 文件及目录操作
  6. 加密数据机器学习_机器学习加密数据不再是幻想
  7. Yar的RPC的应用-php
  8. 女生适合学习java什么_女生不适合学习java吗?其实不是这样的,女生往往更有优势!...
  9. 六点创业术:从不对称的信息开始,以“白手起家挣一百万”结束
  10. postgresql 循环函数开发(while,for)