10.2. 显示搜索结果
简介
本小节中,我们将新建一个搜索结果页面,并根据搜索值返回对应的搜索结果。
返回搜索结果
1、打开 src/store/getters.js
文件,在代码的最后面,导出派生状态 getArticlesByKeyword
:
src/store/getters.js
.
.
.
// 根据关键字 keyword 返回搜索结果
export const getArticlesByKeyword = (state, getters) => (keyword) => {
let articles = getters.computedArticles
// 搜索结果
let results = []
if (Array.isArray(articles)) {
articles.forEach((article) => {
let { articleId, title, content } = article
// 该正则表示文章标题或内容中的关键字
const regex = new RegExp(`(${keyword})`, 'gi')
if (title.indexOf(keyword) !== -1 || content.indexOf(keyword) !== -1) {
// url 是文章中没有的数据,我们结合 articleId 拼出完整的路径
const url = `${location.origin}/articles/${articleId}/content`
// 给文章标题中的关键字加上高亮,$1 匹配第一个括号的内容...